我正在运行一个新的专用服务器,并希望备份常规 apache 配置和所有其他服务器配置,包括 php.ini
WHM 备份工具是否涵盖了这一点,或者我应该寻找其他途径?
答案1
我建议安装etckeeper,这是一个工具包,它将您的 /etc 树(您的所有设置,包括 php.ini 和 httpd.conf 都应位于此)放入本地版本控制系统中。它可以自动提交软件包的安装和删除,并且还具有其他一些实用功能。
一些教程:
- http://fnords.wordpress.com/2009/02/23/etckeeper-chronicles-1/
- https://help.ubuntu.com/9.04/serverguide/C/etckeeper.html
Etckeeper 支持各种版本控制系统来存储您的配置。对于您的情况,我建议将其设置为使用分布式 vcs (DVCS),例如 Bazaar 或 Git。我认为 Bazaar 是默认设置,但这取决于您的发行版。
使用 DVCS 可以定期将整个历史记录从服务器的 vcs 推送到远程服务器(例如通过 cronjob),从而创建本地版本化历史记录,并具有相同的远程备份。您可以使用私人 github、bitbucket 或任何帐户,也可以运行自己的备份服务器。
如果您和您的同事在管理服务器时使用 sudo,则提交甚至会标有您的帐户名,以便您查看谁更改了哪些设置。
这听起来可能比简单地将配置文件复制到远程服务器要复杂一些,但我相信这是一个更好的解决方案。它为您提供了版本控制系统的所有优势:
- 具有日志和无限历史记录的完整版本备份。
- 问责制
- 轻松回滚,全部或部分
- 轻松区分和浏览您的设置
Etckeeper 在大多数 Linux 发行版中以软件包形式提供。
PS 另一个选择是安装丛林磁盘服务器版并使用它来备份 /etc 目录。这可以轻松实现异地安全备份和恢复,并支持多个版本和已删除文件。它不提供简单的差异、问责制和无限的历史记录,这就是我最后提到它的原因。
答案2
以下是备份我博客的脚本内容:
$ 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
用简单的英语来说,它设置日期和备份目录,删除今天的任何现有备份,然后在 gzip 的 tarball 中创建新的备份,并在名称中指定日期。
很快将添加到此脚本中的将是上传到 Amazon S3 云的方法。不想像 Jeff 和 Joel 那样陷入完全不知所措的境地。
答案3
答案4
必须支持这个rsync
建议。实际上,我可能会制作一个快速的 shell 脚本来对 tar.gz 进行历史记录处理,同时保持当前扩展 - 设置一些密钥 ssh 和一个 cron 选项卡,这样就大功告成了。