linux下自动备份网站/数据库/域名信息/自动上传FTP脚本
本帖最后由 ruixunidc 于 2014-5-13 11:07 编辑
本脚本特色:
1.纯zip压缩,1-9可自行调整压缩率
2.整台VPS备份,还原方便,非常适合站群
3.加入压缩密码,可以自己设置
4.加入绑域名信息伪静态压缩,防止伪静态弄丢
5.请确保在home目录下有backup目录,如果没有请执行 mkdir /home/backup
【脚本开始】
- #!/bin/bash
- #下面的参数是你要修改的
- MYSQL_USER=root #mysql用户名
- MYSQL_PASS=mysql密码 #mysql密码
- FTP_USER=FTP用户名 #ftp用户名
- FTP_PASS=FTP密码 #ftp密码
- FTP_IP=FTP地址 #ftp地址
- FTP_backup=FTP目录 #ftp上存放备份文件的目录,这个要自己得ftp上面建的
- WEB_DATA=/home/wwwroot/ #要备份的网站数据
- WEB_BANGMI=/usr/local/nginx/conf/ #要备份的绑域名信息
- WEB_MULU=/home/backup #备份文件存放目录
- WEB_MIMA=zhujima #备份时候的密码
- WEB_YASUOLV=1 #压缩率 1-9 如果VPS没有zip,请安装zip
- #上面是你要修改的地方
- #删除淘宝客缓存,属于自定义设置。可自行操作
- #rm -rf /home/wwwroot/1.com/Apicache/*
- #定义数据库的名字和旧数据库的名字
- DataBakName=Data_$(date +"%Y%m%d").zip #定义数据库名字
- WebBakName=Web_$(date +%Y%m%d).zip #定义备份网站名字
- BANGMI=BANGMI_$(date +%Y%m%d).zip #定义绑域名备份名字
- OldData=Data_$(date -d -5day +"%Y%m%d").zip #定义5天前数据库名字
- OldWeb=Web_$(date -d -5day +"%Y%m%d").zip #定义5天前网站名字
- BANGMIshan=BANGMI_$(date -d -5day +"%Y%m%d").zip #定义5天前绑域名名字
- #删除本地3天前的数据
- rm -rf $WEB_MULU/Data_$(date -d -3day +"%Y%m%d").zip $WEB_MULU/Web_$(date -d -3day +"%Y%m%d").zip $WEB_MULU/BANGMI_$(date -d -3day +"%Y%m%d").zip
- #导出全部数据库
- cd $WEB_MULU
- /usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS –all-databases > $(date +"%Y%m%d").sql
- #压缩数据库文件为一个文件
- zip -r -$WEB_YASUOLV -P $WEB_MIMA $DataBakName $WEB_MULU/*.sql
- rm -rf $WEB_MULU/*.sql
- #压缩网站数据
- cd $WEB_DATA
- zip -r -$WEB_YASUOLV -P $WEB_MIMA $WebBakName ./*
- mv $WebBakName $WEB_MULU/$WebBakName
- cd $WEB_MULU
- #压缩绑域名信息
- cd $WEB_BANGMI #进入绑域名目录
- zip -r -$WEB_YASUOLV -P $WEB_MIMA $BANGMI ./*
- mv $BANGMI $WEB_MULU/$BANGMI
- #上传到FTP空间,删除FTP空间5天前的数据
- cd $WEB_MULU #进入备份目录
- ftp -v -n $FTP_IP << END
- user $FTP_USER $FTP_PASS
- type binary
- cd $FTP_backup
- delete $BANGMIshan
- delete $OldData
- delete $OldWeb
- put $DataBakName
- put $WebBakName
- put $BANGMI
- bye
- END
复制代码
加入权限,写入定时执行
chmod 777 /root/beifen.sh
crontab -e
30 04 * * * /root/beifen.sh
注:每天04:30开始备份并且上传FTP