我正在运行一个新的专用服务器,并希望备份一般的Apacheconfiguration和所有其他服务器configuration,包括php.ini
WHM备份工具覆盖了这个还是我应该寻找另一条路线?
我build议安装etckeeper ,这是一个工具包,把你的/ etc树(包括php.ini和httpd.conf在内的所有设置都放在本地版本控制系统中)。 它可以自动提交包的安装和删除,还有一些其他漂亮的function。
一些教程:
Etckeeper支持各种版本控制系统来存储你的configuration。在你的情况下,我会build议设置它使用分布式vcs(DVCS),如Bazaar或Git。 我认为巴扎是默认的,但这可以取决于你的分布。
使用DVCS可以将整个历史logging从服务器的vcs定期(例如通过cronjob)推送到远程服务器,实际上可以创build本地版本化的历史logging,并具有相同的远程备份。 你可以使用私人的github,bitbucket或者其他帐户,或者运行你自己的备份服务器。
如果您和您的同事在pipe理服务器时使用sudo,则提交甚至会使用您的帐户名称进行标记,以便您查看哪些人更改了哪个设置。
这可能听起来比简单地将configuration文件复制到远程服务器更复杂一点,但我相信这是一个更好的解决scheme。 它给你一个版本控制系统的所有优点:
Etckeeper作为大多数Linux发行版的软件包提供。
PS另一种select是安装Jungle Disk Server Edition并使用它来备份/ etc目录。 这可以轻松实现异地安全备份和恢复,支持多个版本和已删除的文件。 它不提供简单的区分,问责制和无限的历史,这就是为什么我最后提到它。
以下是备份我的博客的脚本的内容:
$ cat arc_blog.sh #!/bin/bash DATE=`date +%Y%m%d` BACKUPDIR="/home/###USERNAME###/backup" rm -fv $BACKUPDIR/$DATE.webroot.tar.gz tar czvf $BACKUPDIR/$DATE.webroot.tar.gz /var/www rm -f $BACKUPDIR/webroot.tar.gz ln -s $BACKUPDIR/$DATE.webroot.tar.gz $BACKUPDIR/webroot.tar.gz mysqldump --user=backup --password=###PASSWORD### -A > $BACKUPDIR/$DATE.allDBs.sql rm -fv $BACKUPDIR/$DATE.allDBs.sql.gz gzip -f $BACKUPDIR/$DATE.allDBs.sql rm -f $BACKUPDIR/allDBs.sql.gz ln -s $BACKUPDIR/$DATE.allDBs.sql.gz $BACKUPDIR/allDBs.sql.gz echo $DATE > $BACKUPDIR/current
用简单的英语,它设置date和备份目录,删除今天的任何现有备份,然后在名称中指定的date在gzip'd tarball中创build新的备份。
很快被添加到这个脚本将是一个亚马逊的S3云的上传方法。 不想像杰夫和乔尔那样处于完全失败的境地。
这可能是你所需要的,但是像Puppet或者AutomateIt这样的服务器pipe理工具,如果你想要根据你现有的configuration设置一个全新的服务器,或者用一个标准的configuration来维护多个服务器,那么这个工具是非常有用的。
得到第二个rsyncbuild议。 其实id可能会做一个快速的shell脚本做一个tar.gz的历史,以及保持当前扩展 – build立一些键控ssh和一个cron选项卡,你做完了。