自动备份使用rdiff-backup

这是一个“复制和粘贴” HowTo! 遵循本教程的最简单的方法是使用命令行客户端/ SSH客户端(如 PuTTY for Windows),并简单地复制和粘贴命令(除了必须提供自己的信息,如IP地址,主机名,密码... )。 这有助于避免打字错误。

使用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
Password: ----------------------------------------------------------------- Detected abilities for source (read only) file system: Access control lists Off Extended attributes Off Mac OS X style resource forks Off Mac OS X Finder information Off ----------------------------------------------------------------- Warning: ownership cannot be changed on filesystem at boot/rdiff-backup-data ----------------------------------------------------------------- Detected abilities for destination (read/write) file system: Characters needing quoting '' Ownership changing Off Hard linking On fsync() directories On Directory inc permissions On Access control lists Off Extended attributes Off Mac OS X style resource forks Off Mac OS X Finder information Off ----------------------------------------------------------------- rdiff-backup@backup:~$

您会看到,在第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.combackup.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
Generating public/private rsa key pair.
Enter file in which to save the key (/backup/.ssh/id_rsa):
Created directory '/backup/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /backup/.ssh/id_rsa.
Your public key has been saved in /backup/.ssh/id_rsa.pub.
The key fingerprint is:
88:18:4e:55:e9:27:8e:2a:44:4b:03:bd:9d:0f:fc:48 rdiff-backup@backup

可以将键保存在/backup/.ssh/id_rsa中 ,以便您只需按Enter键即可 。 重要的是,您不要输入密码,否则备份将无法在没有人工交互的情况下工作,因此再次输入 。 最后创建两个文件: /backup/.ssh/id_rsa/backup/.ssh/id_rsa.pub

接下来,使用以下内容创建/backup/.ssh/config文件:

host server1_backup
hostname server1.example.com
user root
identityfile /backup/.ssh/id_rsa
compression yes
cipher blowfish
protocol 2

主机的价值是我们以后用来启动备份。 您可以使用任何您喜欢的名称(例如server1_backupthis_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
23
The authenticity of host 'server1.example.com (1.2.3.4)' can't be established.
RSA key fingerprint is c7:19:55:7a:54:ce:93:c8:b6:f9:0e:e3:65:24:64:11.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server1.example.com' (RSA) to the list of known hosts.
Password:
Now try logging into the machine, with "ssh 'root@server1.example.com'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

rdiff-backup@backup:~$

再次,您必须输入server1.example.com密码。 该命令的作用是将用户rdiff-backup公钥复制到远程服务器server1.example.com上的/root/.ssh/authorized_keys文件。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏