网站搜索

这个 Linux 命令是我唯一需要的备份工具


专家建议使用专业备份套件、复杂的企业软件以及云工具来保护数据,而我也使用过相当多的这些工具。我已经用够了它们。有趣的是,让我意识到这些复杂的图形界面备份工具都不够好的原因,比硅谷一半的工程师都要年长。

这是一个名为 rsync 的本地命令行工具。rsync 去掉了图形元素,依靠原始的差分匹配管道,使其更快更高效。我的整个数据恢复策略都是围绕它构建的。

它只复制重要的内容

那时备份变得实用起来

我通常尽量避免不舒服的任务,在某种程度上,多年来备份变得乏味。我理解它们有多重要,但每次需要运行备份时等待的想法让我无法持续进行。Rsync 完全改变了这一点。

我的工作文件夹,里面包含了几个GB的项目文件,几分钟内就完成了备份。然后,在我进行了一些编辑并添加了新文件后,我再次运行了备份,几秒钟内就完成了。我运行的命令如下:

rsync -avh --delete /home/user/projects/ /media/backup/projects/

-avh 选项是此命令的重要部分。-a 启用归档模式,保留权限、所有权和时间戳。-v 在终端打印正在传输的文件,-h 确保显示的文件大小以兆字节和千兆字节显示,而不是以字节显示。

之所以速度如此之快,是因为 rsync 并不是查看源文件的内容,而是比较源和目标,只传输差异部分。这意味着在初次运行之后,后续运行只需要处理发生变化的内容。因此,即使初次备份需要 20 分钟,后续更新可能只需 30 秒。速度的这种差异是我养成新备份习惯的主要原因。如果不需要花费太多时间,我就可以定期进行备份。

它到处都能用

我的备份策略从未改变






我使用过的大多数备份工具都会要求一些回报。有时是订阅费;有时是专有格式,如果你决定更换服务,还需要一个繁琐的迁移项目。而这些问题在 rsync 中并不存在。

我已经多次更改备份目标:外部硬盘、第二块 SSD、树莓派和远程 VPS,命令几乎没有任何变化。对于本地备份,命令如下所示:

rsync -avh --delete /home/user/ /media/external/backup/

在任何 rsync 命令中添加 -n,可以进行一次模拟运行,它会显示将要传输的内容,而不会实际移动任何东西。

通过 SSH 进行远程备份的命令如下:

rsync -avh --delete -e ssh /home/user/ user@192.168.1.100:/backup/laptop/

那差别几乎不能再大了。它从不要求我在目标设备上初始化仓库或安装客户端软件。我在目标设备上得到的只是我的文件,组织方式与源头完全一样。

最终,我其实并不忠于 rsync,而是忠于它所提供的工作流程,这个工作流程几乎在所有东西上都能以相同的方式运作。

恢复保持简单

我从未重新学习恢复

当恢复变得复杂时,它会降低备份工具的价值。虽然这看起来很明显,但许多备份工具在恢复方面存在困难。我在恢复过程中遇到的一些复杂情况包括恢复向导本身、目录,以及看起来与我备份数据时不同的用户界面。

Rsync 避免了所有的复杂性,因为备份目的地通常只是一个文件夹。一旦你打开这个文件夹,你就可以看到所有已备份的内容,如果你需要某些东西,你可以简单地将它复制出来。如果我需要所有的数据,我会使用类似下面的命令以反向方式运行 rsync:

rsync -avh /media/backup/projects/ /home/user/projects/

对于使用 --link-dest 快照的备份,避免手动复制文件,以免硬链接悄然损坏;相反,应使用 rsync 来恢复。

在这个命令中,我故意省略了--delete 标志,因为在恢复过程中,我不需要工具删除在备份中缺失的实时系统中的文件。整个过程非常简单。

我停止了寻找

备份无论如何都会进行

从我第一次使用 rsync 起,我就知道它必须成为我的备份工具。只需在我的 crontab 中增加一行,我就可以自动执行在凌晨 2 点运行的备份,并记录输出内容:

0 2 * * * rsync -avh --delete /home/user/ /media/backup/ >> /var/log/rsync-backup.log 2>&1

如果你从未使用过 crontab,打开它的命令是:crontab -e。

命令前的前五个字段表示分钟、小时、日期、月份和星期。这是一个只需几分钟就能学会的命令,学会后你使用一次就可以忘记它了。

偶尔,使用 tail /var/log/rsync-backup.log 检查你的日志,以确认备份是否真正完成。

此时,我不再需要评估其他备份方案。我过去使用过 Borg,并且很喜欢它。如果你需要加密的存储库或对虚拟机镜像进行重复数据删除,它是一个很好的选择。但 rsync 是在多个地点保持个人文件安全的理想解决方案。使 rsync 成为我用过的最佳备份工具的原因是,你真的不需要在日常工作流程中去考虑或注意它。

简单总是获胜

我学到的一件事是,我不需要一个臃肿的生态系统来真正保护我的数据。最好的解决方案是一个在执行任务时不需要过多关注的工具。Rsync 去掉了图形界面带来的额外负担,将曾经令人感到干扰的任务转变为一个无形的后台进程。

相关文章