随着博客数据慢慢增加,今抽空写了一个小脚本,对网站做定时备份,自动发邮件到我邮箱。顺便放出来与大家分享!
下图脚本运行结果:



脚本代码:
#!/bin/bash
#Author  :elain
#Ctime   :20110320
Bak_Dir=/home/elain/backup/
Www_Dir=/www/htdocs/elain
LogFile=/var/log/elain.log
Bak_Data=/home/elain/backup/data/blog_`date +%Y%m%d`.sql.gz
Bak_www=/home/elain/backup/www/elain`date +%Y%m%d`.tar.gz
MailList=dtmlove1985@sina.com
# Info   : 每周备份一次elain.org数据库
/usr/local/mysql/bin/mysqldump -uroot elain -B|gzip > $Bak_Data
#sleep 300
# Info   : 每周打包一次elain.org
/bin/tar zcPvf $Bak_www  $Www_Dir  >> /dev/null 2>&1
# Info   : 邮件正文
echo -e "==========`date +%Y年%m月%d日` elain.org 备份数据==========" >$LogFile
echo -e "数据库备份文件:\nblog_`date +%Y%m%d`.sql.gz \n大小:`du -sh $Bak_Data |awk '{print $1}'`" >>$LogFile
echo -e "网站程序备份文件:\nelain`date +%Y%m%d`.tar.gz \n大小:`du -sh $Bak_www |awk '{print $1}'`" >>$LogFile
echo -e "==============by:elain www.elain.org=================\n详情参见附件!" >>$LogFile
# Info   : 发送邮件
/usr/bin/mutt -s "`date +%Y年%m月%d日` elain.org 备份数据" $MailList -a $Bak_Data -a $Bak_www < $LogFile
# Info   : 删除一个月前的备份
find $Bak_Dir -mtime +30 | xargs rm -rf

给予此脚本以执行权限
chmod 700 /home/elain/scripts/bak_elain.org.sh


做定时任务
[root@blog scripts]# crontab -l
# Info : 每周备份elain.org
# Author : dingtm
# Ctime : 2011.03.20
00 6 * * 6 /bin/sh /home/elain/scripts/bak_elain.org.sh
本文地址为:http://www.elain.org/?p=192,更多技术请访问:elain'blog ---http://www.elain.org/