全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 28568|回复: 56
打印 上一主题 下一主题

[经验] 自动备份网站文件和数据库上传到FTP空间(10月7日更新)

[复制链接]
跳转到指定楼层
1#
发表于 2010-8-8 15:07:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10月7日更新,导出的每个数据库为单独一个,然后压缩在一个压缩包,现在你只要修改以下选项就能用了.

#你要修改的地方从这里开始
MYSQL_USER=root                             #mysql用户名
MYSQL_PASS=123456                      #mysql密码
[email protected]                 #数据库发送到的邮箱
FTP_USER=cat                              #ftpl用户名
FTP_PASS=123456                         #ftp密码
FTP_IP=imcat.in                          #ftp地址
FTP_backup=backup                          #ftp上存放备份文件的目录,这个要自己得ftp上面建的
WEB_DATA=/home/www                          #要备份的网站数据
#你要修改的地方从这里结束

别忘记了建目录:mkdir -p /home/backup
如果你的网站数据大于5G小于10G的话,压缩起来会有点困难...

如果小于5G,就没问题了...不过这一切都是看vps的性能而已...
---------------------------------------------------
上班是无聊的,如果不找点事做,我会睡着的...
所以就这个脚本就诞生了..
主要功能有: (标题不是说了嘛!!!!),详细点就是,自动备份网站文件和数据库并上传到FTP空间,在本地保留3天备份,在远端FTP空间保留5天备份.
数据库备份采用发送到Email和FTP空间,双重备份,保证数据的安全.

首先安装Email发送组件
  1. yum install sendmail mutt
复制代码
脚本如下:
  1. #!/bin/bash
  2. #你要修改的地方从这里开始
  3. MYSQL_USER=root                             #mysql用户名
  4. MYSQL_PASS=123456                      #mysql密码
  5. [email protected]                 #数据库发送到的邮箱
  6. FTP_USER=cat                              #ftpl用户名
  7. FTP_PASS=123456                         #ftp密码
  8. FTP_IP=imcat.in                          #ftp地址
  9. FTP_backup=backup                          #ftp上存放备份文件的目录,这个要自己得ftp上面建的
  10. WEB_DATA=/home/www                          #要备份的网站数据
  11. #你要修改的地方从这里结束

  12. #定义数据库的名字和旧数据库的名字
  13. DataBakName=Data_$(date +"%Y%m%d").tar.gz
  14. WebBakName=Web_$(date +%Y%m%d).tar.gz
  15. OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz
  16. OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz
  17. #删除本地3天前的数据
  18. rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz
  19. cd /home/backup
  20. #导出数据库,一个数据库一个压缩文件
  21. for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
  22.     (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
  23. done
  24. #压缩数据库文件为一个文件
  25. tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz
  26. rm -rf /home/backup/*.sql.gz
  27. #发送数据库到Email,如果数据库压缩后太大,请注释这行
  28. echo "主题:数据库备份" | mutt -a /home/backup/$DataBakName -s "内容:数据库备份" $MAIL_TO
  29. #压缩网站数据
  30. tar zcf /home/backup/$WebBakName $WEB_DATA
  31. #上传到FTP空间,删除FTP空间5天前的数据
  32. ftp -v -n $FTP_IP << END
  33. user $FTP_USER $FTP_PASS
  34. type binary
  35. cd $FTP_backup
  36. delete $OldData
  37. delete $OldWeb
  38. put $DataBakName
  39. put $WebBakName
  40. bye
  41. END
复制代码
下载地址:http://imcat.in/linux/AutoBackupToFtp.sh
下载脚本,给脚本添加权限:
  1. chmod +x AutoBackupToFtp.sh
复制代码
利用crontab 实现自动备份,在ssh下,
  1. crontab -e
复制代码
没有这个命令?请看CentOS安装crontab及使用方法

输入以下内容:
  1. 00 00 * * * /home/AutoBackupToFtp.sh
复制代码
这样就实现了每天00:00自动备份网站文件和数据库上传到FTP空间


转载请注明:http://imcat.in/auto-backup-site-files-database-upload-ftp/

[ 本帖最后由 Cat 于 2010-10-7 22:33 编辑 ]

评分

参与人数 12威望 +161 收起 理由
vclove + 7 感谢分享
Captain + 15 精品文章
yang + 15 恭喜发财
Globalization + 20 精品文章
yxq4319 + 7 精品文章

查看全部评分

推荐
发表于 2010-9-1 06:23:58 | 只看该作者
请教
mysqldump -uroot -p123456 --databases db1 db2 db3

如果要把mysql中所有数据库(不自己指定,默认所有库名)以“每个单独的数据库名.sql”格式备份下来,应该怎么写
推荐
发表于 2010-8-31 20:59:11 | 只看该作者
先收藏
推荐
发表于 2010-8-27 10:47:44 | 只看该作者
好东西 就是看不懂
推荐
发表于 2010-8-27 00:07:40 | 只看该作者
猫猫真是论坛高人哦。
2#
发表于 2010-8-8 15:10:00 | 只看该作者
一会试试去
3#
发表于 2010-8-8 15:13:49 | 只看该作者
学习
4#
 楼主| 发表于 2010-8-8 15:27:11 | 只看该作者
我已经测试成功...

但整理可能有错误...帮忙检查..

评分

参与人数 1威望 +1 收起 理由
绝对菜鸟 + 1 直接把mysql的var目录给打包,这样和导出那个 ...

查看全部评分

5#
发表于 2010-8-8 16:03:08 | 只看该作者
不错

评分

参与人数 1威望 +1 收起 理由
serverpoint + 1 我看你链接了。

查看全部评分

6#
发表于 2010-8-8 16:17:51 | 只看该作者
删除ftp空间5天前
这个原理是什么?
ftp也可以执行脚本??
7#
发表于 2010-8-8 16:21:25 | 只看该作者
不太明白哟
8#
发表于 2010-8-8 16:27:39 | 只看该作者
嗯不错.很多人需要.
9#
 楼主| 发表于 2010-8-8 16:36:16 | 只看该作者
原帖由 youland 于 2010-8-8 16:17 发表
删除ftp空间5天前
这个原理是什么?
ftp也可以执行脚本??


是在本地发送ftp命令去删除啦...

原理就是你用ftp软件删除远程文件一个道理
10#
发表于 2010-8-8 18:03:12 | 只看该作者
新人表示看不懂汉字部分,怎么个替换法呢?悲剧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-10 14:22 , Processed in 0.077193 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表