最近用的是 Buyvm 的 VPS,性价比很给力,可是因为他家是 ONEMAN 运营,怕跑路。钱的损失不重要,才几美元。可数据呢?如果丢了,就灰常有趣了。
此文介绍一种,每天自动备份网站以及数据库文件,发送 EMAIL 到邮箱,并上传网站和数据加文件到 FTP 空间,自动删除旧备份的方法。
首先安装 EMAIL 发送组件:
yum install sendmail mutt
脚本下载地址:http://down.vpsmm.com/shell/AutoBackupToFtp.sh
脚本代码如下 (注意修改 FTP 服务器地址用户名密码):
#!/bin/bash #你要修改的地方从这里开始 MYSQL_USER=root #mysql 用户名 MYSQL_PASS=123456 #mysql 密码 [email protected] #数据库发送到的邮箱 FTP_USER=cat #ftp 用户名 FTP_PASS=123456 #ftp 密码 FTP_IP=imcat.in #ftp 地址 FTP_backup=backup #ftp 上存放备份文件的目录, 这个要自己得 ftp 上面建的 WEB_DATA=/home/www #要备份的网站数据 #你要修改的地方从这里结束 #定义数据库的名字和旧数据库的名字 DataBakName=Data_$(date +"%Y%m%d").tar.gz WebBakName=Web_$(date +%Y%m%d).tar.gz OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz #删除本地 3 天前的数据 rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz cd /home/backup #导出数据库, 一个数据库一个压缩文件 for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz) done #压缩数据库文件为一个文件 tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz rm -rf /home/backup/*.sql.gz #发送数据库到 Email, 如果数据库压缩后太大, 请注释这行 echo "主题: 数据库备份" | mutt -a /home/backup/$DataBakName -s "内容: 数据库备份" $MAIL_TO #压缩网站数据 tar zcf /home/backup/$WebBakName $WEB_DATA #上传到 FTP 空间, 删除 FTP 空间 5 天前的数据 ftp -v -n $FTP_IP << END user $FTP_USER $FTP_PASS type binary cd $FTP_backup delete $OldData delete $OldWeb put $DataBakName put $WebBakName bye END
给脚本添加执行权限:
chmod +x /root/AutoBackupToFtp.sh
利用系统 crontab 实现每天自动运行:
crontab -e
输入以下内容:
00 00 * * * /root/AutoBackupToFtp.sh
其中 00 00 为时间分/小时,可自行修改,例如:30 12 ***,就是每天 12.30 运行这个脚本。
以下为 lftp 备份脚本:
#!/bin/bash #定义数据库的名字和旧数据库的名字 DataBakName=Data_$(date +"%Y%m%d").tar.gz WebBakName=Web_$(date +%Y%m%d).tar.gz #删除本地 3 天前的数据 rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz #导出 mysql 数据库 /usr/local/mysql/bin/mysqldump -uroot -ppassword --databases db1 > /home/backup/databackup.sql #压缩数据库 tar zcf /home/backup/$DataBakName /home/backup/databackup.sql rm -rf /home/backup/databackup.sql #压缩网站数据 tar zcvf /home/backup/$WebBakName /home/wwwroot #使用 lftp 同步备份目录 lftp -u user,password -e "mirror -R --only-newer /home/backup /backup" ftp.yoursite.cn exit END
本篇仅做收藏使用,原文转自 @小叶博客
文章评论
Yߋu are so awesome! Ι don't suppose I havee гead
a single thіng like that ƅefore. So wonderful tߋo
discovver anotһer person ᴡith original thοughts on thiѕ topic.
Seriously.. thаnks for starting tһis up. Thіs wweb site іs one tһing that is needeⅾ on the
internet, ѕomeone with a bit of originality!
Hello colleagues, іts wonderful article on the topic
օf cultureand completeely defined, кeep it uр
alll thе time.