Linux自动备份VPS网站数据到其他FTP空间并自动删除老备份
之前看Godaddy的4GH系列主机性价比不错,所以专门入手一个用来做备份用~150G的空间应该可以用一阵子了,下面转摘过来的操作方法,有需要的朋友可以参考学习。(另外基本上所有支持FTP的空间都能用这个方法来备份,我已经测试通过了,没问题的)
首先你待备份的网站需要有SSH权限,因为需要创建数据备份脚本
1、登录SSH,创建文件backup.sh
vi /root/backup.sh
2、创建backup.sh,并保存。 注释:/home/backup为本地服务器存放备份文件的目录,可以自由更改,但要注意提前创建好。
DataBakName:数据库文件名
WebBakName:网站数据文件名
OldData :五天后的自动删除的数据库文件
OldWeb :五天后的自动删除的网站数据文件
粘贴以下代码到backup.sh,并保存
#!/bin/bash
cd /home/backup
#定义数据库的名字和旧数据库的名字
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/*.*来都删除了
rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz
#导出mysql数据库 这里mysqldump的位置要根据实际情况来确定,有多个网站,多个MYSQL的话,就一个网站写一条。
/usr/local/mysql/bin/mysqldump -u root -p123456 zhumaohai > /home/backup/zhumaohai.sql
#压缩数据库
tar zcf /home/backup/$DataBakName /home/backup/*.sql
#删除sql文件
rm -rf /home/backup/*.sql
#压缩网站数据 ,同样的,这里如果你有多个网站目录,就多写几条
tar zcvf /home/backup/$WebBakName /home/wwwroot
#上传到FTP空间,删除FTP空间5天前的数据 (留意下面一行红色部分,网上有不少文章写成>>这样是错误的,不知他们是怎么想出来的) 下面的8.8.8.8根据你要上传的服务器IP自己设置,gdftpuser就是你的FTP账号,后面的123456是密码,根据实际情况修改,下面的backup是FTP上面的目录,可以根据实际情况修改,但要注意提前创建
ftp -v -n 8.8.8.8 << END
user gdftpuser 123456
type binary
cd backup
delete $OldData
delete $OldWeb
put $DataBakName
put $WebBakName
bye
END
3、为backup.sh添加执行权限:
chmod +x /root/backup.sh
添加脚本至crontab(自动启动程序)
执行命令crontab -e,添加每天0点10分启动代码
10 00 * * * /root/backup.sh
测试脚本
执行脚本backup.sh
./backup.sh
稍等片刻,登录godaddy免费空间的FTP,看是否已经成功上传了备份文件,如果存在,证明脚本已经设置正确。否则,认真检查FTP信息是否设置正确。
脚本当中加入自动清除过期的文件,不需要这个可以自行删除。
首先你待备份的网站需要有SSH权限,因为需要创建数据备份脚本
1、登录SSH,创建文件backup.sh
vi /root/backup.sh
2、创建backup.sh,并保存。 注释:/home/backup为本地服务器存放备份文件的目录,可以自由更改,但要注意提前创建好。
DataBakName:数据库文件名
WebBakName:网站数据文件名
OldData :五天后的自动删除的数据库文件
OldWeb :五天后的自动删除的网站数据文件
粘贴以下代码到backup.sh,并保存
#!/bin/bash
cd /home/backup
#定义数据库的名字和旧数据库的名字
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/*.*来都删除了
rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz
#导出mysql数据库 这里mysqldump的位置要根据实际情况来确定,有多个网站,多个MYSQL的话,就一个网站写一条。
/usr/local/mysql/bin/mysqldump -u root -p123456 zhumaohai > /home/backup/zhumaohai.sql
#压缩数据库
tar zcf /home/backup/$DataBakName /home/backup/*.sql
#删除sql文件
rm -rf /home/backup/*.sql
#压缩网站数据 ,同样的,这里如果你有多个网站目录,就多写几条
tar zcvf /home/backup/$WebBakName /home/wwwroot
#上传到FTP空间,删除FTP空间5天前的数据 (留意下面一行红色部分,网上有不少文章写成>>这样是错误的,不知他们是怎么想出来的) 下面的8.8.8.8根据你要上传的服务器IP自己设置,gdftpuser就是你的FTP账号,后面的123456是密码,根据实际情况修改,下面的backup是FTP上面的目录,可以根据实际情况修改,但要注意提前创建
ftp -v -n 8.8.8.8 << END
user gdftpuser 123456
type binary
cd backup
delete $OldData
delete $OldWeb
put $DataBakName
put $WebBakName
bye
END
3、为backup.sh添加执行权限:
chmod +x /root/backup.sh
添加脚本至crontab(自动启动程序)
执行命令crontab -e,添加每天0点10分启动代码
10 00 * * * /root/backup.sh
测试脚本
执行脚本backup.sh
./backup.sh
稍等片刻,登录godaddy免费空间的FTP,看是否已经成功上传了备份文件,如果存在,证明脚本已经设置正确。否则,认真检查FTP信息是否设置正确。
脚本当中加入自动清除过期的文件,不需要这个可以自行删除。
测试通过。。。非常好用。可以扩展到应用到所有支持FTP的空间,数据无价,记得常常备份
顶(6)
踩(0)
- 最新评论