使用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
在Fedora上使用的命令是:
sudo dnf install restic
在Manjaro上,我们使用pacman
:
sudo pacman -Sy restic
设置Restic
确保在备份服务器计算机上设置了SSH,并且可以从要备份的计算机与其建立远程连接。那是客户端计算机。在我们的测试网络中,客户端称为“ ubuntu-20-10”,而服务器称为“ backup-box”。
用restic的术语来说,备份作为快照存储在存储库中。每个备份都会创建一个新的快照。我们需要在服务器上为存储库创建一个位置。
我们需要在备份服务器上创建一个目录来保存存储库。从历史上看,服务器提供的服务位于“ / srv”目录中。因此,我们将存储库放置在此处。
在备份服务器上,发出此命令。您可以随意命名存储库目录。为了简单起见,我们使用名称“ restic”。
sudo mkdir /srv/restic
我们需要确保要处理备份的人员可以访问此目录。如果是多个人,则创建一个用户组并授予该组访问目录的权限。
sudo chown dave:dave /srv/restic
让我们检查目录上的设置:
ls -hl /srv
现在,我们可以移至客户端计算机,并从那里在服务器上创建存储库。用您的用户名,备份服务器名和存储库目录名替换您的选择。如果愿意,可以使用备份服务器的IP地址。
我们正在使用-r
(存储库)选项来指定要创建的存储库的路径。resticinit
命令将初始化存储库。
restic -r sftp:dave@backup-box.local:/srv/restic init
系统将要求您输入备用服务器上用户帐户的密码。如果您已在服务器和客户端之间设置了SSH密钥,则无需执行此步骤。
还要求您输入存储库密码,然后要求您确认密码。以后必须使用此密码与存储库进行交互。不要失去它!如果丢失密码,将无法备份或还原数据。
创建和初始化存储库只需要一点时间。
创建备份
创建备份非常简单。我们将backup
命令与restic一起使用,告诉它要备份的内容以及将备份发送到哪个存储库。
restic backup Documents/kernel/ -r sftp:dave@backup-box.local:/srv/restic
您需要提供用户密码和存储库密码。在备份运行时,将显示正在复制的文件的名称,以及统计信息,告诉您总共将要复制多少个文件,到目前为止已复制了多少文件以及完成备份的百分比。使用高级加密标准AES-256对快照进行加密。
因为这是对此存储库的首次备份,所以备份的所有文件都是新文件。我们确实说过Restic很快-在23秒内备份了70,000个文件。这就是Linux内核的所有源代码。
在另一台测试机上,我在一个半小时内备份了超过350,000个文件,总计超过170 GiB。
我在客户端的源目录中创建了一个新文件,并运行了另一个备份。该命令与以前相同。
restic backup Documents/kernel/ -r sftp:dave@backup-box.local:/srv/restic
扫描了源目录树中的更改,检测到新文件,并对其进行了备份。第二个小型备份需要三秒钟才能完成,包括扫描其他文件以查找更改。
让我们看一下存储库中的两个快照。restic命令是 snapshots
。
restic -r sftp:dave@backup-box.local:/srv/restic snapshots
每个快照都被赋予一个十六进制标识符作为唯一ID。显示创建每个快照的日期和时间。还会显示进行备份的计算机的名称以及备份数据的路径。
然后,我创建了另一个新文件并创建了另一个备份。同样,命令行与以前相同。
就像我们之前的充值备份一样,此微小更新需要三秒钟才能完成。
现在,您可能已经厌倦了输入存储库密码。在使用snapshots
命令查看三个快照的集合之前,我们可以解决该问题。打开一个编辑器并在其中输入存储库密码,然后按“ Enter”开始新行。在您的主目录中将文件另存为“ .rest_pass”。
为了确保没有其他人可以看到密码, 更改文件的访问模式位使用chmod
:
chmod 600 .rest_pass
这意味着只有您可以访问该文件。
现在,我们可以使用-p
(password file)选项将其传递给rest命令行。如果您还在客户端和服务器之间设置了SSH密钥,则也不必输入用户帐户密码。cron
一旦从流程中删除了人机交互,您就可以轻松地自动执行备份。
restic snapshots -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass
我们不再要求输入存储库密码,这很好。我们不需要记住它,也不能输错它。
使用快照
resticdiff
命令可让您查看任意两个快照之间的差异。使用要比较的两个快照的唯一ID。使用resticsnapshot
命令时,您可以看到快照ID 。
restic diff -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass 8f98cd29 8700e4bf
快照之间的差异显示为统计信息列。
resticcheck
命令针对存储库中的所有快照执行验证测试。
restic check -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass
要删除快照,您必须告诉forget
它以及prune
它。您必须使用快照的唯一ID来标识要删除的快照。
restic forget --prune -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass e506e089
恢复数据
当需要从备份还原数据时,就像创建备份一样容易。您需要指定要还原的快照。您可以使用快照的唯一ID,也可以使用latest
标签使用存储库中的最新快照。
您还需要提供一个目录,用于使用该target
选项将还原的数据复制到其中。
restic restore latest --target ~/restored-data -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass
还原与备份一样快速。检入目标目录,我们可以看到目录树和文件已为我们还原。
ls
轻松备份,轻松睡眠
数据丢失是一个严重的问题。强大的备份解决方案意味着您无需担心什么。使用restic,您可以自动将备份备份到本地和云存储库,并轻松入睡。