LinuxVPS 自动每日备份

2017 年 8 月 13 日 3017 点热度 0 人点赞 3 条评论

最近用的是 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

 

本篇仅做收藏使用,原文转自 @小叶博客

Gcod

人生若只如初见,何事秋风悲画扇

文章评论

  • youjizz

    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!

    2018 年 2 月 5 日
  • youjizz videos

    Hello colleagues, іts wonderful article on the topic
    օf cultureand completeely defined, кeep it uр
    alll thе time.

    2018 年 1 月 30 日
  • 姬长信
    2017 年 8 月 15 日