使用rdiff-backup进行自动备份
版本1.0
作者:Falko Timme
本教程介绍如何使用工具rdiff-backup进行自动化服务器备份。 通过rdiff-backup,您可以使用SSH通过网络进行备份,以便数据传输被加密。 使用SSH使rdiff备份非常安全,因为没有人可以读取正在传输的数据。 rdiff-backup进行增量备份 ,从而节省带宽。
请查看有关rdiff-backup功能的更多信息: http : //www.nongnu.org/rdiff-backup/index.html
问题是SSH需要用于登录的密码,如果要将rdiff-backup作为cron作业运行,则不太好。 需要密码需要人为的互动,这不是我们想要的。 例如,要备份server1.example.com的目录/引导 ,您可以在备份服务器上键入rdiff-backup root@server1.example.com :: / boot boot (在本教程中,我们将其命名为backup.example.com ),它将尝试在backup.example.com的目录引导中保存server1.example.com的目录/ 引导 。 现在这是怎么回事?
rdiff-backup@backup:~$ rdiff-backup root@server1.example.com::/boot boot |
您会看到,在第2行中,系统会要求您输入server1.example.com的根密码。
但幸运的是有一个解决方案:使用公钥 。 我们创建一对密钥(在我们的备份服务器backup.example.com上 ),其中一个密钥保存在远程系统( server1.example.com )上的文件中。 之后,当我们运行rdiff-backup时,我们将不再提示输入密码。 这也包括正是我们想要的cron工作。
哦,你可能已经从我迄今为止所写过的内容中猜到,这个概念是我们直接从backup.example.com启动server1.example.com的备份; server1.example.com不需要做任何备份。
这是一个实践指南; 它不包括理论背景。 他们在网络上的许多其他文档中被处理。
本文档不附带任何形式的保证! 我想说,这不是设立这样一个制度的唯一办法。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!
第1步:安装rdiff-backup在server1.example.com和backup.example.com上
首先我们必须在server1.example.com和backup.example.com上安装rdiff-backup 。 在Debian系统上,您只需运行即可
apt-get install rdiff-backup
在其他发行版上,安装是不同的(在Fedora上可能是像yum install rdiff-backup这样的东西 ,在Mandriva urpmi rdiff-backup上 ,而在SuSE上你应该使用yast来安装rdiff-backup )。
第2步:在backup.example.com上创建密钥
在backup.example.com上,我们创建一个名为rdiff-backup的组和非特权用户。 此用户rdiff-backup将运行备份。 为了安全起见,我们不希望root运行备份!
groupadd -g 3500 rdiff-backup
useradd -u 3500 -s / bin / false -d / backup -m -c“rdiff-backup”-g rdiff-backup rdiff-backup
第二个命令使用主目录/备份创建用户rdiff-backup (由该命令自动创建,如果它不存在)谁不允许在shell上登录(再次出于安全考虑)。 如果您的系统上已经使用组ID和用户ID 3500,请用另一个(免费)ID替换它们。
然后跑
su -m rdiff-backup
使用此命令,您将成为shell上的用户rdiff-backup 。 所有以下命令必须以用户rdiff-backup运行!
创建密钥:
cd /备份
ssh-keygen -t rsa
你会看到这样的东西:
rdiff-backup@backup:~$ ssh-keygen -t rsa |
可以将键保存在/backup/.ssh/id_rsa中 ,以便您只需按Enter键即可 。 重要的是,您不要输入密码,否则备份将无法在没有人工交互的情况下工作,因此再次输入 。 最后创建两个文件: /backup/.ssh/id_rsa和/backup/.ssh/id_rsa.pub 。
接下来,使用以下内容创建/backup/.ssh/config文件:
host server1_backup |
主机的价值是我们以后用来启动备份。 您可以使用任何您喜欢的名称(例如server1_backup , this_is_the_machine_i_want_to_backup等)(但不应包含空格;下划线可以)。
更改该文件的权限:
chmod -R go-rwx /backup/.ssh
现在我们将公钥复制到server1.example.com :
ssh-copy-id -i〜/ .ssh / id_rsa.pub root@server1.example.com
这将是这样的:
rdiff-backup@backup:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@server1.example.com |
再次,您必须输入server1.example.com的根密码。 该命令的作用是将用户rdiff-backup的公钥复制到远程服务器server1.example.com上的/root/.ssh/authorized_keys文件。