我在云环境中有一个专用的Ubuntu Web服务器,我正在寻找一种自动备份的好方法.
我想用网络应用程序和我的所有MySql数据库备份一些目录.至于目的地:每两小时一次制作快照,每六个小时制作一次远程ftp服务器.还要删除超过七天的备份存档(localy ftp),并通过电子邮件通知任何问题.
现在要实现一些这样的功能我使用cron shell脚本和http://www.mysqldumper.net/,但实际上并没有满足我的需求. MysqLdumper不会自动了解新数据库,并且shell脚本不会通知问题.这是我不时要检查的东西,我不相信.
我google了一段时间,似乎大多数人用shell脚本解决这个问题.这是一种值得信赖的方法吗?有没有任何web-gui工具,我很遗憾?这样做可能有更聪明的策略吗?我有点困惑.
解决方法
实际上我正在使用
rsnapshot进行备份.它不能备份MysqL db本身,但它允许在备份之前和之后执行脚本.所以在rsnapshot执行之前:
/usr/bin/ssh remote_host 'MysqL -N -e "SHOW DATABASES;" | while read db; do MysqLdump --skip-comments $db |gzip > ~/db/${db}.sql.gz; done'
所有MysqL设置都存储在〜/ .my.cnf中,备份完成后,rsnapshot执行脚本删除远程主机上的dump.
rsnapshot还使用硬链接,当它进行备份时,它可以节省您的空间,并且您可以随时完成备份.
Rsnapshot使用rsync传输数据,因此它比ftp更安全.