使用Linux下crontab命令来实现定时备份及邮件通知功能。
首先需要编写备份及邮件通知脚本。
备份脚本:
# 先将要备份的文件夹打包
tar cf xxx .tar xxx
# 然后在保存备份的根目录下创建以“年月”为文件夹名的文件夹,将备份按月存放
mkdir /xxxbackup /`date +%Y%m`
# 将打好包的备份移动到备份根目录当月文件夹,并给备份包的文件名加上日期
mv xxx .tar /xxxbackup /`date +%Y%m`/xxx_bak_ `date +%Y%m%d`.tar
# 进入备份包所在文件夹并通过ftp将其发送到其他服务器上备份
cd /xxxbackup /`date +%Y%m`
ftp -niv<<!
open 192.168.*.*
user root yourpassword
binary
cd /xxxbackup
mkdir `date +%Y%m`
put xxx_bak_ `date +%Y%m%d`.tar /xxxbackup /`date +%Y%m`/xxx_bak_ `date +%Y%m%d`.tar
bye
!
将备份脚本保存为autobackup.sh ;
邮件通知脚本:
# crontab命令执行任务结束后会给root发送一份执行结果的邮件,
# 从中截取需要的部分(如倒数15行),将其保存在temp文件中
tail -15 /var/spool/mail/root >temp
# 使用mail命令将temp文件内容作为附件发送到指定邮箱中
mail -s `date +%Y%m%d` backupmail@***.com <temp
# 删除temp临时文件
rm -rf temp
将邮件通知脚本保存为mailresult.sh ;
定时执行的任务脚本:
# 每天的3点开始执行自动备份脚本
0 3 * * * /path /autobackup.sh
# 每天的3点10份开始执行邮件通知脚本
10 3 * * * /path /mailresult.sh
将定时执行脚本保存为crontabtask;
然后在终端将任务发布:
[root@localhost]# crontab crontabtask
--------------------------------------------------------------------------------------------------------------
默认的mail设置可能不能够向外部邮箱发送邮件,只能向本机内用户发送邮件。
此处的简单配置请见:
http://www.diybl.com/course/6_system/linux/Linuxjs/20091119/182839.html
或
http://blog.csdn.net/AlphaHinex/archive/2010/02/01/5276433.aspx