快捷搜索:   nginx

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信息是否设置正确。 

脚本当中加入自动清除过期的文件,不需要这个可以自行删除。

测试通过。。。非常好用。可以扩展到应用到所有支持FTP的空间,数据无价,记得常常备份

顶(6)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论