该脚本作用,每天(可自定义)备份数据到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
在拿到脚本之后请自行修改一下信息,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