浏览模式: 标准 | 列表 2013年04月13日的文章

Linux VPS定时自动备份网站和mysql数据库并上传至FTP的脚本

网上很多做VPS推介的网站都会提醒用户注意备份网站数据,而linux vps备份的方法都是用脚本定时自动化备份,其中有一个自动化备份并上传至ftp服务器的脚本有点问题(手动执行脚本本地可以产生备份数据压缩包并上传到ftp服务器,但是放到crontab里自动化执行则只有本地可以产生备份数据压缩包却没有上传到ftp服务器),我改了下脚本,适用于使用lnmp环境下定时自动备份网站和mysql数据库并上传至FTP:

  • #!/bin/bash
  • MYSQL_USER=root
  • MYSQL_PASS=root
  • FTP_USER=ftp
  • FTP_PASS=123456
  • FTP_IP=www.is36.com
  • FTP_backup=/public_html/
  • WEB_DATA=/home/wwwroot/
  •  
  • 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
  • rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz
  • cd /home/backup
  • for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
  •     (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
  • done
  • tar zcfP /home/backup/$DataBakName /home/backup/*.sql.gz
  • rm -rf /home/backup/*.sql.gz
  • tar zcfP /home/backup/$WebBakName $WEB_DATA
  •  
  • ftp -i -n << !
  • open $FTP_IP
  • user $FTP_USER $FTP_PASS
  • bin
  • lcd /home/backup/
  • cd $FTP_backup
  • delete $OldData
  • delete $OldWeb
  • put $DataBakName
  • put $WebBakName
  • bye

Tags: linux vps, mysql, lnmp, ftp