我有一个Ubuntu服务器托pipe一个PHP5 / MySQL的Web应用程序。 我也有另一个服务器(非现场)的目录只是为了我的webapp服务器的备份。 目前,我有一个简单的cron作业,执行以下操作:
cp -ua /var/www /backup/www 问题:
感谢您的任何build议
我会推荐一些可以进行增量备份的方法,因为这样可以回到前几天更改的文件。 我们使用dirvish (它可以从ubuntu的仓库获得) – 基本上它是用perl写的rsync的一个包装,它使设置一个系统运行常规的增量备份变得更容易,然后根据给定的规则使它们失效。
在我们的系统上,我们保留了7天的备份,但保留了一个月的第一个备份,并且保留了一个月的第一个备份,所以通常您可以find前一段时间修改和删除的文件。 对于小而重要的事情,我们有更长的到期时间。
至于你应该备份什么,如果你有足够的空间备份一切,除非你确定你不需要备份。 使用增量的rsync备份,您只能复制自上次备份以来发生更改的文件 – 我宁愿在备份驱动器上有一个额外的3GB属于操作系统的静态数据,而不是发现它缺less一个重要文件需要恢复它。
至less我会根据服务器上运行的东西来备份/ etc /和/ var的大部分内容。
如果您的mysql数据库相当小,那么您当前的方法可能是可以接受的,但是因为您需要locking数据库以生成转储,所以在大型数据库上这是不实际的。 由于很多人运行一个slave mysql服务器,它只是备份服务器上主服务器的只读副本,并使用它来生成备份。
关于如何做到这一点的MySQL文档是相当不错的,我在晚上第一次通过它,没有很多以前的MySQL经验。
我们有我们的奴隶mysql服务器绑定到dirvish,所以每天它会生成每个单独的数据库的转储,以及/ var / lib / mysql的一个完整的副本(这是在这样做之前停止mysql服务器)
在Ubuntu机器上查看备份mySQL和SVN的便捷方式 ,这几乎可以总结出您需要的东西。
简而言之;
backupninja和rdiff-backup良好的经验。 看看有什么可用的,什么适合你的需求,并select。 /etc/ (服务器configuration)的备份,所有你的web的东西,RCS数据,数据库。 我通常也复制主目录,因为我通常有一堆很好的小脚本,这些脚本实际上不适合其他任何地方,如果我必须恢复服务器,那么有一个“已知的”shell设置是非常好的,首选编辑器等 我有我的服务器备份一切我需要备份到一个焦油,然后它被复制到外部备份。 该脚本也将从7天前删除备份。 我忘了我在哪里find它,但我没有写。
!/bin/bash # fecha has a formated date fecha=`date +"%d-%m-%Y"` # Backup and gzip the directory sudo tar cvzpf /backups/backup-$fecha.tgz --same-owner --exclude="/export/*" --exclude="/backups/*" --exclude="/home/error.log" --exclude="/proc/*" --exclude="/media/*" --exclude="/dev/*" --exclude="/mnt/*" --exclude="/sys/*" --exclude="/tmp/*" / 2>/home/error.log # Rotate the logs, delete older than 7 days find /backups/ -mtime +7 -exec rm {} \;