如何在Linux上使用Restic备份程序

78c23137

使用Restic备份程序保护您的珍贵文件和不可替代的照片。它是快速,加密的,您可以直接在Linux命令行中使用它。设置方法如下。

备份的价值

所有硬件都有有限的寿命。机械 硬盘驱动器(HDD)和固态驱动器(SSD)不会永远持续下去。事故也发生了。笔记本电脑可能会丢失,被盗或掉下楼梯。

过去曾经说过,只有丢失数据后,有效备份系统的价值才能变得清晰。当发生故障或丢失时,您需要一种快速简便的方法来取回文件和信息。如果组织丢失数据,则影响很严重。它甚至可能危害业务连续性。即使在家庭环境中,数据丢失也可能是痛苦的经历。备份是唯一明智的保障措施。

最重要的是,某些通用的数据保护法规(例如《通用数据保护条例》(GDPR))将个人身份数据的意外(或恶意)损失视为违规。

选择备份软件时,有两个注意事项。您希望将备份保存在哪里?在可移动驱动器上,在局域网(LAN)上的另一台计算机上还是在云存储中?显然,您需要使用一个备份程序,该程序可以从您想要使用的数据存储中写入和还原。

备份应该被加密,特别是如果备份要存储在非本地位置或云中。如果它们是加密的,则未经授权的人将无法读取和还原它们。

该程序应该很快。您不想整天等待备份或还原完成。一些程序存储基本备份映像,然后为每个后续备份存储基本映像和源计算机之间的差异。这样可以大大加快备份过程。它还减少了备份空间。

Restic可以完成所有这一切。它是免费的开放源代码,根据2条款BSD许可进行了许可,并且正在积极开发中。源代码在GitHub上。

备份到哪里

在本文中,我们将把备份存储在网络中的另一台计算机上。太好了,因为它提供了快速的文件传输,并且备份和还原都很容易。在现实世界中,您确实还需要备份到另一个异地位置。如果您的实时系统和备份位于同一位置,并且在该位置发生灾难(火灾,盗窃或洪水),除非您拥有非内部备份,否则您的鹅将被煮熟。

毫不奇怪,restic可以备份到可以从场所中拿走的外部驱动器,而且更好的是,它可以直接备份到云存储。

开箱即用,restic可以备份到:

  • 本地目录或本地可移动驱动器。
  • 通过SSH文件传输协议(SFTP)的联网计算机 。当然,这需要安全外壳(SSH)。
  • HTTP REST服务器。
  • AWS S3。
  • OpenStack Swift。
  • BackBlaze B2。
  • Microsoft Azure Blob存储。
  • Google云端存储。

如果需要备份到不在该列表中的数据目标,则可以将rclone的功能与Restic结合使用,并备份到 rclone支持的40个左右的目标中的任何一个。

SFTP网络备份需要在备份服务器上安装和配置SSH。这是将备份存储在其上的机器。如果您在备份服务器和要备份的计算机上设置了SSH密钥,则每次运行备份时都不会提示您输入SSH密码。

自动执行备份的一种方法是创建短脚本或Shell函数,并使用cron在指定时间运行它们。使用SSH密钥可以避免为无人照管的备份提供密码的问题。

安装restic

Restic应用程序位于主要Linux发行版的存储库中,因此使用每个发行版的软件包管理器进行安装都是一个简单的过程。

要在Ubuntu上安装Restic,请输入:

sudo apt install restic

4a47a0db

在Fedora上使用的命令是:

sudo dnf install restic

a8911d2f

在Manjaro上,我们使用pacman

sudo pacman -Sy restic

db67a724

设置Restic

确保在备份服务器计算机上设置了SSH,并且可以从要备份的计算机与其建立远程连接。那是客户端计算机。在我们的测试网络中,客户端称为“ ubuntu-20-10”,而服务器称为“ backup-box”。

用restic的术语来说,备份作为快照存储在存储库中。每个备份都会创建一个新的快照。我们需要在服务器上为存储库创建一个位置。

我们需要在备份服务器上创建一个目录来保存存储库。从历史上看,服务器提供的服务位于“ / srv”目录中。因此,我们将存储库放置在此处。

在备份服务器上,发出此命令。您可以随意命名存储库目录。为了简单起见,我们使用名称“ restic”。

sudo mkdir /srv/restic

fb5c81ed

我们需要确保要处理备份的人员可以访问此目录。如果是多个人,则创建一个用户组并授予该组访问目录的权限。

sudo chown dave:dave /srv/restic

10fb15c7

让我们检查目录上的设置:

ls -hl /srv

09dd8c26

现在,我们可以移至客户端计算机,并从那里在服务器上创建存储库。用您的用户名,备份服务器名和存储库目录名替换您的选择。如果愿意,可以使用备份服务器的IP地址。

我们正在使用-r(存储库)选项来指定要创建的存储库的路径。resticinit命令将初始化存储库。

restic -r sftp:dave@backup-box.local:/srv/restic init

8266e4bf

系统将要求您输入备用服务器上用户帐户的密码。如果您已在服务器和客户端之间设置了SSH密钥,则无需执行此步骤。

还要求您输入存储库密码,然后要求您确认密码。以后必须使用此密码与存储库进行交互。不要失去它!如果丢失密码,将无法备份或还原数据。

f19c9085

创建和初始化存储库只需要一点时间。

创建备份

创建备份非常简单。我们将backup命令与restic一起使用,告诉它要备份的内容以及将备份发送到哪个存储库。

restic backup Documents/kernel/ -r sftp:dave@backup-box.local:/srv/restic

9eb9cd58

您需要提供用户密码和存储库密码。在备份运行时,将显示正在复制的文件的名称,以及统计信息,告诉您总共将要复制多少个文件,到目前为止已复制了多少文件以及完成备份的百分比。使用高级加密标准AES-256对快照进行加密。

602e8f04

因为这是对此存储库的首次备份,所以备份的所有文件都是新文件。我们确实说过Restic很快-在23秒内备份了70,000个文件。这就是Linux内核的所有源代码。

在另一台测试机上,我在一个半小时内备份了超过350,000个文件,总计超过170 GiB。

7afbb160

我在客户端的源目录中创建了一个新文件,并运行了另一个备份。该命令与以前相同。

restic backup Documents/kernel/ -r sftp:dave@backup-box.local:/srv/restic

586e508f

扫描了源目录树中的更改,检测到新文件,并对其进行了备份。第二个小型备份需要三秒钟才能完成,包括扫描其他文件以查找更改。

让我们看一下存储库中的两个快照。restic命令是 snapshots

restic -r sftp:dave@backup-box.local:/srv/restic snapshots

59b2900a

每个快照都被赋予一个十六进制标识符作为唯一ID。显示创建每个快照的日期和时间。还会显示进行备份的计算机的名称以及备份数据的路径。

然后,我创建了另一个新文件并创建了另一个备份。同样,命令行与以前相同。

9eb60bc8

就像我们之前的充值备份一样,此微小更新需要三秒钟才能完成。

现在,您可能已经厌倦了输入存储库密码。在使用snapshots命令查看三个快照的集合之前,我们可以解决该问题。打开一个编辑器并在其中输入存储库密码,然后按“ Enter”开始新行。在您的主目录中将文件另存为“ .rest_pass”。

为了确保没有其他人可以看到密码, 更改文件的访问模式位使用chmod

chmod 600 .rest_pass

c00b5755

这意味着只有您可以访问该文件。

现在,我们可以使用-p(password file)选项将其传递给rest命令行。如果您还在客户端和服务器之间设置了SSH密钥,则也不必输入用户帐户密码。cron一旦从流程中删除了人机交互,您就可以轻松地自动执行备份。

restic snapshots -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass

7b6fbd4c

我们不再要求输入存储库密码,这很好。我们不需要记住它,也不能输错它。

使用快照

resticdiff命令可让您查看任意两个快照之间的差异。使用要比较的两个快照的唯一ID。使用resticsnapshot命令时,您可以看到快照ID 。

restic diff -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass 8f98cd29 8700e4bf

d642f8c3

快照之间的差异显示为统计信息列。

resticcheck命令针对存储库中的所有快照执行验证测试。

restic check -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass

1e412544

要删除快照,您必须告诉forget它以及prune它。您必须使用快照的唯一ID来标识要删除的快照。

restic forget --prune -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass e506e089

c9baca3c

恢复数据

当需要从备份还原数据时,就像创建备份一样容易。您需要指定要还原的快照。您可以使用快照的唯一ID,也可以使用latest标签使用存储库中的最新快照。

您还需要提供一个目录,用于使用该target 选项将还原的数据复制到其中。

restic restore latest --target ~/restored-data -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass

78c39f45

还原与备份一样快速。检入目标目录,我们可以看到目录树和文件已为我们还原。

ls

079f4fb5

轻松备份,轻松睡眠

数据丢失是一个严重的问题。强大的备份解决方案意味着您无需担心什么。使用restic,您可以自动将备份备份到本地和云存储库,并轻松入睡。

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun37165.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2021年2月12日 上午8:20
下一篇 2021年2月15日 上午8:20