CentOS 自动备份网站和数据库上传到FTP并发通知邮件!
#!/bin/bash
#–>>>>你要修改的地方从这里开始
#mysql用户名
MYSQL_USER=root
#mysql密码
MYSQL_PASS=123456
#数据库发送到的邮箱
MAIL_TO=7877257@qq.com
#ftp用户名
FTP_USER=bak_www
#ftp密码
FTP_PASS=bak_www
#ftp地址
FTP_IP=63.121.254.171
#ftp上存放备份文件的目录,这个要自己得ftp上面建的
FTP_backup=backup
#要备份的网站数据
WEB_DATA=/wwwroot
#服务器IP地址
SERVER_IP=hostloc.com
#你要修改的地方从这里结束—<<<<
#进入备份目录
cd /bak/backup/
#—-web_bak_start——–
#网站备份名
WebBakName=Web_$(date +%Y%m%d).tar.gz
#删除3天前的备份文件名
OldWeb=Web_$(date -d -3day +”%Y%m%d”).tar.gz
#删除本地3天前的数据
rm -rf $OldWeb
#压缩网站数据
tar zcfP $WebBakName $WEB_DATA
#—-web_bak_end———-
#—-mysql_bak_start——–
#网站备份名
MysqlBakName=Mysql_$(date +%Y%m%d).tar.gz
#删除3天前的备份文件名
OldMysql=Mysql_$(date -d -3day +”%Y%m%d”).tar.gz
#mysql 的BIN目录自己修改下, /usr/local/lamp/mysql/bin
for db in `/usr/local/lamp/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e ‘SHOW DATABASES’ | xargs`; do
(/usr/local/lamp/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 – > ${db}.sql.gz)
done
#删除本地3天前的数据
rm -rf $OldMysql
#压缩数据库数据
tar zcfP $MysqlBakName *.sql.gz
rm -f *.sql.gz
#—-mysql_bak_end———-
###下面为自动上传部分,不得不说lftp很强大,抛弃ftp吧####
lftp $FTP_IP -u $FTP_USER,$FTP_PASS << EOF
cd $FTP_backup
mrm $OldWeb
mrm $OldMysql
mput $WebBakName
mput $MysqlBakName
bye
EOF
#发送邮件通知
echo “$(date +%Y%m%d): 网站内容已全部备份完成! 网站备份名:$WebBakName 数据库备份名:$MysqlBakName” | mutt -s “$SERVER_IP: 备份完成” $MAIL_TO
发邮件这块如果不能成功的,可以参考下我的博客文章:
http://cl4188.blog.163.com/blog/static/197905060201202982242910/
本文出自 蓝鹰博客,转载时请注明出处及相应链接。
本文永久链接: http://www.lanyingblog.com/blog/544.html