如何在Ubuntu12.04上安装Rsnapshot
状态: 已弃用
本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:
原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.
请参阅:
本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。
Highlighting 是什么意思
用户需要输入或自定义的行将在本教程中以突出显示! 其余的大部分应该是可复制粘贴的。
介绍
本教程将介绍如何设置和使用 rsnapshot,这是一种基于 rsync 的远程备份解决方案。 Rsnapshot 利用 rsync 的强大功能来创建计划的增量备份。
此过程将演示如何创建本地备份,以及如何使用其他云服务器或您的家庭计算机作为备份空间。 要完成本教程中的过程,您需要以 root 身份登录或在所有命令前加上“sudo”。
第一步:安装 Rsnapshot 并配置 SSH 密钥
备份内容的第一步是在您想用作备份服务器的机器上安装 rsnapshot。
Rsnapshot 在 Ubuntu 的默认存储库中,因此我们可以使用 apt-get 安装它:
sudo apt-get install rsnapshot
为了备份另一个云服务器,您的备份服务器需要能够通过 SSH 连接到您要备份的云服务器。 我们希望 rsnapshot 能够在没有密码的情况下使用 SSH,因此我们需要生成 SSH 密钥来进行身份验证。
要生成公钥和私钥,请在备份服务器上运行此命令:
sudo ssh-keygen -t rsa
我们不需要此密钥的密码,因为我们希望这些计算机能够在没有我们干预的情况下相互连接。 在所有提示中按“ENTER”以接受默认值。
user@backupserver:~#: sudo ssh-keygen –t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: … The key's randomart image is: …
我们现在有一个公钥和私钥对,可以让我们从备份服务器登录到其他服务器。 我们需要将我们的公钥转移到我们将要备份的机器上,以便它知道我们被允许访问它。
sudo ssh-copy-id -i /root/.ssh/id_rsa.pub root@example.com
请务必将“example.com”更改为您将备份的服务器的 IP 地址或域名。
一旦该命令执行,您应该检查您是否能够从备份服务器登录到您的服务器而无需密码。
sudo ssh root@example.com
确认可以正确连接后,请退出,以便您能够再次在备份服务器上工作。
exit
第二步:配置 Rsnapshot
安装 rsnapshot 后,您需要编辑配置文件。
sudo nano /etc/rsnapshot.conf
使用 rsnapshot 配置文件时要记住的一件事是,每个目录都需要一个尾部斜杠 (/) 才能正确读取。
您需要做出的第一个决定是您想要存储备份的位置。 我们将使用目录“/backup”作为我们的备份位置。 搜索并编辑以下变量以设置备份位置。
snapshot_root /backup/
如果此目录尚不存在,则 rsnapshot 将在运行时创建它。
您还需要取消注释 cmd_ssh 行以允许远程备份。 删除以下行前面的“#”,以便 rsnapshot 可以安全地将您的数据传输到备份服务器。
cmd_ssh /usr/bin/ssh
从 cmd_du 行之前删除“#”以启用准确的磁盘使用情况报告。
cmd_du /usr/bin/du
接下来,我们需要考虑要保留多少旧备份。 由于 rsnapshot 使用增量备份,我们可以将旧备份保留一段时间,然后再删除它们。
我们在配置的“备份间隔”部分下设置这些。 我们告诉 rsnapshot 保留每种间隔的特定数量的备份。 出于本指南的目的,默认设置很好,但我们还将取消注释“每月”间隔,以便我们有一些长期备份。 将此部分编辑为如下所示:
######################################### # BACKUP INTERVALS # # Must be unique and in ascending order # # i.e. hourly, daily, weekly, etc. # ######################################### retain hourly 6 retain daily 7 retain weekly 4 retain monthly 3
另一个可能需要编辑的项目是 ssh_args 变量。 如果您按照 SSH 教程中的建议更改了要备份的云服务器上的端口号,您需要取消注释 ssh_args 部分并在此处使用相同的设置。
ssh_args -p 25000
最后,您需要决定要备份的内容。 如果您在本地备份到同一台机器,这就像指定要保存的目录并在其后面加上“localhost/”一样简单,这将是您之前设置的 snapshot_root 中的一个子目录。
我们将选择备份主目录和 etc 目录。
backup /home/ localhost/ backup /etc/ localhost/
如果您要备份远程服务器或其他 Droplet(云服务器),也可以在此处进行配置。 您只需要告诉 rsnapshot 服务器在哪里以及您要备份哪些目录。
backup root@example.com:/home/ remote-droplet/
rsnapshot 是基于拉取的。 这意味着,如果没有其他解决方法和配置,您无法将备份推送到远程服务器。 相反,使用 SSH 密钥,它们将被拉入安装了 rsnapshot 的服务器。
您需要将“example.com”部分更改为您要备份的服务器的 IP 地址或域名。 在您的服务器名称/IP 地址之后,您需要放置一个冒号“:”,然后是您要备份的目录路径。 “remote-droplet”部分是存储备份的子目录。 你可以随意命名它。
我们现在完成了 rsnapshot 的初始配置。 在继续之前保存 /etc/rsnapshot.conf 文件。 如果您使用 nano 进行编辑,请按“Ctrl-X”退出并在提示时回答“是”以保存更改。
测试您的配置
在设置自动化之前,我们要测试一切是否按预期工作。 要测试您的配置是否具有正确的语法,请运行:
sudo rsnapshot configtest
如果您的文件没有错误,您将收到“语法正常”消息。 如果您没有收到此消息,则需要返回并修复它告诉您的错误。
接下来,我们要对其中一个快照进行试运行,以确保我们产生了预期的结果。 我们使用“每小时”参数,因为每小时备份是其他间隔将建立的基本快照类型。 这意味着我们将从“每小时”获得比选择“每天”或“每周”更多的信息。
sudo rsnapshot -t hourly
如果生成的输出看起来正确,您可以删除“-t”选项以第一次尝试您的设置。
sudo rsnapshot hourly
这将运行我们在配置文件中设置的备份。 对于本教程,rsnapshot 创建了一个 /backup 目录,然后在其下创建了用于组织我们文件的目录结构。
自动化流程
随着 rsnapshot 正常工作,剩下要做的就是安排它以特定的时间间隔运行。 我们将使用 cron,一个 linux 调度程序来实现这一点。
幸运的是,rsnapshot 包含一个默认的 cron 文件,我们可以根据自己的喜好对其进行编辑。 我们将再次使用 nano 编辑此文件。
sudo nano /etc/cron.d/rsnapshot
该计划目前已被注释掉。 我们将从调度部分的开头删除“#”字符以激活这些值。
# This is a sample cron file for rsnapshot. # The values used correspond to the examples in /etc/rsnapshot.conf. # There you can also set the backup points and many other things. # # To activate this cron file you have to uncomment the lines below. # Feel free to adapt it to your needs. 0 */4 * * * root /usr/bin/rsnapshot hourly 30 3 * * * root /usr/bin/rsnapshot daily 0 3 * * 1 root /usr/bin/rsnapshot weekly 30 2 1 * * root /usr/bin/rsnapshot monthly
这些设置将运行每四个小时将快照添加到我们的“/backup/”目录中的“hourly”目录,每天凌晨 3:30 添加每日快照,每周一凌晨 3:00 添加每周快照,然后添加每月第一天凌晨 2:30 的每月快照。
错开备份并首先运行更大的备份间隔非常重要。 这意味着首先运行每月备份,然后按顺序从那里逐步缩短间隔,正如我们在本教程中所做的那样。 这是必要的,这样程序就不会因为试图同时进行多个备份而陷入困境,这可能会导致问题。