定时备份及邮件通知

来源:互联网 发布:联网打印软件 编辑:程序博客网 时间:2024/05/09 04:12

使用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