如何在本地备份我的服务器configuration?

我正在运行一个新的专用服务器,并希望备份一般的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选项卡,你做完了。