CentOS 自动备份网站和数据库上传到FTP并发通知邮件!

作者: 蓝鹰 分类: CentOS 发布时间: 2013-05-21 13:49 ė113 浏览数 6CentOS 自动备份网站和数据库上传到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

0
Ɣ回顶部