自动备份文件和数据库到FTP和邮件

林继 VPS 知识 1,837 共写了502个字 (2012-12-30 15:59:56) 没有评论 打印 扫描二维码 百度未收录

#1.以ROOT身份登录SSH输入以下命令,建立VPS本地备份的文件夹.

  1. mkdir -p /www/backup

#2.安装Email发送组件(可选)

  1. yum install sendmail mutt

#3.在/www/backup/文件夹里建立个文件backupeveryday.sh,代码如下(注意修改你的MYSQL密码,其他方面也自己看备注修改吧…可先建立好,保存为UTF8格式,再传到VPS上) 直接复制可能出错,建议直接下载后再编辑:

  1. #!/bin/bash
  2. #你要修改的地方从这里开始
  3. MYSQL_USER=root #mysql用户名
  4. MYSQL_PASS=123456 #mysql密码
  5. MAIL_TO=wilywx@qq.com #数据库发送到的邮箱
  6. FTP_USER=vpswilywx #ftp用户名
  7. FTP_PASS=12345678 #ftp密码
  8. FTP_IP=ftp.wilywx.com #ftp地址
  9. FTP_backup=backup #ftp上存放备份文件的目录,这个要自己得ftp上面建的
  10. WEB_DATA=/www/web #要备份的网站数据
  11. #你要修改的地方从这里结束
  12.  
  13. #定义数据库的名字和旧数据库的名字
  14. DataBakName=Data_$(date +%Y%m%d”).tar.gz
  15. WebBakName=Web_$(date +%Y%m%d).tar.gz
  16. OldData=Data_$(date -d -5day +%Y%m%d”).tar.gz
  17. OldWeb=Web_$(date -d -5day +%Y%m%d”).tar.gz
  18. #删除本地3天前的数据
  19. rm -rf /www/backup/Data_$(date -d -3day +%Y%m%d”).tar.gz /www/backup/Web_$(date -d -3day +%Y%m%d”).tar.gz
  20. cd /www/backup
  21. #导出数据库,一个数据库一个压缩文件
  22. for db in `/www/wdlinux/mysql-5.1.55/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e ‘SHOW DATABASES’ | xargs`; do
  23. (/www/wdlinux/mysql-5.1.55/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9> ${db}.sql.gz)
  24. done
  25. #压缩数据库文件为一个文件
  26. tar zcf /www/backup/$DataBakName /www/backup/*.sql.gz
  27. rm -rf /www/backup/*.sql.gz
  28. #发送数据库到Email,如果数据库压缩后太大,请注释这行
  29. echo “主题:数据库备份” | mutt -a /www/backup/$DataBakName -s “内容:数据库备份” $MAIL_TO
  30. #压缩网站数据
  31. tar zcf /www/backup/$WebBakName $WEB_DATA
  32. #上传到FTP空间,删除FTP空间5天前的数据
  33. ftp -v -n $FTP_IP << END
  34. user $FTP_USER $FTP_PASS
  35. type binary
  36. cd $FTP_backup
  37. delete $OldData
  38. delete $OldWeb
  39. put $DataBakName
  40. put $WebBakName
  41. bye
  42. END

#4.赋予文件执行权限(755)

  1. chmod +x /www/backup/backupeveryday.sh

#5.设定自动任务

  1. crontab -e

#按i进行插入以下一行,表示每天0点进行自动备份,改时间 30 01 就表示每天1点30执行.

  1. 00 00 * * * /www/backup/backupeveryday.sh

#输入完上面一行就按ESC然后输入:wq再回车就OK了.

#6.你现在可以试着手动执行一次备份了….

  1. sh /www/backup/backupeveryday.sh

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >