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

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

我正在运行一个新的专用服务器,并希望备份常规 apache 配置和所有其他服务器配置,包括 php.ini

WHM 备份工具是否涵盖了这一点,或者我应该寻找其他途径?

答案1

我建议安装etckeeper,这是一个工具包,它将您的 /etc 树(您的所有设置,包括 php.ini 和 httpd.conf 都应位于此)放入本地版本控制系统中。它可以自动提交软件包的安装和删除,并且还具有其他一些实用功能。

一些教程:

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 选项卡,这样就大功告成了。

相关内容