定时任务在linux中可定点执行特定的程序,完成特定的任务,下面举例使用定时任务把/etc目录备份的情况,发送到自己的邮箱
?
1.写备份/etc/目录的脚本文件,只保留三天内的备份,超过三天的文件不保留。
[root@zj ~]#vim /opt/backup.sh
#!/usr/bin/bash
BACKDIR=/backup/
BACKNAME=$(date +%F)_$(hostname)_etc.tar.gz
tar czf ${BACKDIR}${BACKNAME} /etc
find ${BACKDIR} -name "*.etc.tar.gz" -mtime +3 -exec rm -f {} \;
2.配置mailx
[root@zj ~]# yum install mailx -y #安装mailx程序
[root@zj ~]# vim /etc/mail.rc
set from=123456@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=123456@qq.com
set smtp-auth-password=客户端授权码
set smtp-auth=login
set ssl-verify=ignore
客户端授权码获取方法:打开QQ邮箱,点设置----帐户----生成授权码,使用手机发送信息,后获取授权码,复制出来,粘贴到上面的配置文件。?
3.编写发送邮件脚本/opt/sent_mail.sh
[root@zj ~]# vim /opt/sent_mail.sh
#!/usr/bin/bash
mail -s "备份情况" "手机号"@139.com </tmp/date.log
?4.写定时任务
[root@zj ~]# crontab -e
SHELL=/usr/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#每天12:00备份/etc/到/backup下
00 12 * * * /opt/backup.sh &>/tmp/date.log
#每天把备份情况以邮件发送给本人
01 12 * * * bash /opt/sent_mail.sh &>/dev/null
注:每天12:00执行/opt/backup.sh,把/etc/打包到/backup目录下,打包情况重定向到/tmp/date.log文件,再通过邮件把/tmp/date.log文件发送给手机邮箱。
|