Total Pageviews

Sunday 6 October 2013

自动备份VPS中的网站数据到FTP空间的脚本

该脚本作用,每天(可自定义)备份数据到FTP中,并把数据存放在“/home/backup”中,自动删除本地和FTP中5天前的数据。

在拿到脚本之后请自行修改一下信息,FTP传输我这边使用的是“lftp”,大部分系统都没有集成的,安装命令“yum install –y lftp”。
VPS自动备份数据到FTP教程

1、先创建一个数据存放目录,输入命令“mkdir /home/backup”。

2、新建一个脚本,先输入“cd /home”再输入命令“vi backup.sh”再按下“i”进入编辑模式。

3、将下载下来的脚本修改完之后,复制进去之后,按下“Esc”进入命令模式,最后输入“:wq”保存就行了。

4、运行脚本测试一下,看能不能正常使用“sh backup.sh”。

5、测试没问题之后,给脚本加权限,命令“chmod +x backup.sh”。

6、最后就添加每日运行了,首先运行命令“crontab -e”,按下“i”进入编辑模式,输入“00 00 * * * /home/backup.sh”,按下“Esc”进入命令模式,再输入“:wq”保存。

基本上就这样了,一般只要信息填写没错的话就不会出问题,因为脚本是临时写的,有的地方也没完善,只能导出一个数据库等,有BUG的话,自己有能力就修改一下吧。

backup.sh的内容:
#!/bin/bash
#请自行修改信息
web_dir=/home/wwwroot/urdomain.com    #需要备份的目录
MYSQL_USER=root                    #数据库账号
MYSQL_PASSWORD=Your rootpassword        #数据库密码
MYSQL_NAME=abc                #数据库库名

#FTP信息,请自行修改信息
FTP_HOST=Your ftphost    #FTP地址
FTP_USER=Your ftpuser            #FTP账号
FTP_PASSWORD=Your ftppassword        #FTP密码
FTP_DIR=xyz            #在FTP中存放目录,需FTP目录中有该目录。

#数据名字和旧数据名字
New_DbBack=Db_$(date +%Y%m%d).tar.gz   
New_WebBack=Web_$(date +%Y%m%d).tar.gz   
Old_DbBack=Db_$(date -d -5day +"%Y%m%d").tar.gz
Old_WebBack=Web_$(date -d -5day +"%Y%m%d").tar.gz


#备份数据库,目录要正确,找不到的话,请输入命令 find / -name mysqldump 。
/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_NAME > /home/backup/$MYSQL_NAME.sql   


rm -rf /home/backup/$Old_DbBack        #删除5天前备份的数据库
rm -rf /home/backup/$Old_WebBack    #删除5天前备份的网站目录数据

cd /home/backup

tar cvf    /home/backup/$New_DbBack /home/backup/$MYSQL_NAME.sql    #打包数据库
tar cvf    /home/backup/$New_WebBack $web_dir    #打包网站数据

rm -rf $MYSQL_NAME.sql    #删除格式为.sql的文件

lftp $FTP_HOST -u $FTP_USER,$FTP_PASSWORD << EOF    #登录FTP
cd $FTP_DIR       
mput $New_DbBack
mput $New_WebBack
mrm $Old_DbBack
mrm $Old_WebBack
bye
EOF