Rsync几乎出现在每一个严肃的备份讨论中,但它常常被视为老旧、不友好或与现代备份工具相比显得过时。我多年来尝试了很多这样的工具,它们确实有效,直到某个时刻出现问题,你需要理解到底发生了什么。

备份图形用户界面的吸引力显而易见。它们提供计划、进度条和友好的标签,暗示一切都在为你处理。问题在于,它们往往隐藏了文件是如何被复制、跳过或删除的机制。当备份失败,或者文件没有落在你预期的位置时,你就不得不翻阅日志和设置界面,以重建工具的内部逻辑。

Rsync通过拒绝抽象化这个过程,避免了这一类问题。你告诉它源是什么,目标在哪里,以及如何处理更改,它就只做这些。虽然这很无聊,但你可以确保你的数据安全。

Rsync 让你掌控一切

Rsync 让你掌控一切

你还可以获得可定制性和透明性

你还可以获得可定制性和透明性

Rsync 附带了数十个命令行选项,让你可以控制从过滤器和文件属性到同步行为、网络传输、带宽使用、权限和元数据的一切。它常被称为“所有文件复制工具的母亲”,一旦你开始认真使用它,这种说法就显得非常准确。你可以精确地告诉 rsync 包含或排除哪些内容,是否保留 ACL 和资源分叉,当源文件消失时该如何处理,以及在更新目标时应该多么激进或保守。这种控制程度是我更喜欢它而非其他工具的主要原因之一。

GUI 备份工具 采取了非常不同的方法。像 ChronoSync 这样的应用通过精致的界面暴露了许多选项,值得一提的是,它们在这一类别中是最好的。你可以通过点击排除文件夹,安排备份,定位网络卷,并在不接触终端的情况下加密目标。问题在于,每个 GUI 都是有设计偏见的。当出现问题时,你最终会在日志、设置界面和文档中翻找,试图重建工具代表你做出的决定。

这种透明性比人们意识到的更为重要。在 APFS 或 HFS+ 卷上,装满普通文件的文件夹几乎可以被任何理解该文件系统的工具读取。即使没有 rsync,您也可以挂载磁盘,手动检查,并使用基本工具复制文件。这在事情出现问题时大大增加了恢复的机会。与此相比,Time Machine 将数据存储在一个依赖于硬链接和只有 macOS 理解的元数据的 sparsebundle 中。当 Time Machine 失败时,它往往会完全失败,几乎没有部分恢复的机会。

还值得注意的是,许多 GUI 工具实际上是 rsync 或类似引擎的包装器。Carbon Copy Cloner 内部捆绑了自己的 rsync 二进制文件用于文件级操作,而 ChronoSync 则使用基于类似原理构建的自定义复制引擎。

Rsync 还提供更好的性能和自动化

Rsync 还提供更好的性能和自动化

GUI 工具远不及

GUI 工具远不及

性能常常被引用为偏好 GUI 工具的理由,这在某种程度上是正确的,尤其是在初始备份时。Rsync 按文件逐个工作,并比较元数据或校验和来决定传输内容,这意味着在大容量数据上第一次运行可能会很慢。大多数 GUI 工具可以通过重新格式化目标磁盘并顺序复制原始块来执行初始克隆的块级复制。这在第一次传输时显著更快。一旦克隆存在,更新将切换回文件级行为,此时 rsync 和 GUI 工具的性能非常接近。

对于增量备份,rsync 通常非常高效。它只传输已更改的文件,可以恢复部分复制,甚至可以在配置为这样时仅更新大文件的更改部分。在大多数静态数据集上,这使得它非常快速。网络备份也是类似的。Rsync 通常通过 SSH 运行,这增加了加密开销,但在现代设备上,这很少成为瓶颈。在非常旧的硬件上,密码选择可能很重要,但这属于调优问题,而不是设计缺陷。在内存使用方面,rsync 是轻量级的。GUI 工具消耗更多资源,仅仅因为它们是完整的应用程序。

rsync 的声誉真正来自于其长期的可靠性。它已经存在了几十年,其行为被很好地理解。在 macOS 上的主要警告是,Apple 默认提供的 rsync 版本过时,历史上缺乏对现代 Mac 元数据的全面支持。通常可以通过通过 Homebrew 或 MacPorts 安装当前版本并使用正确的标志来解决此问题,以保留所有重要内容。GUI 工具为您处理这一切,这确实是一个优势,并且当 Apple 更改文件系统行为时,它们往往会快速更新。

自动化是 rsync 另一个闪光的领域。它被设计为可脚本化。您可以将其包装在 shell 脚本中,使用 launchd 进行调度,将输出管道到日志或电子邮件中,并将其集成到检查磁盘健康、验证副本和修剪旧备份的更大工作流程中。整个系统存在于您可以审计和版本控制的文本文件中。 GUI 工具也支持自动化,但方式更为受限。

Rsync 是一个你应该坚持使用的备份工具

Rsync 是一个你应该坚持使用的备份工具

Rsync 并不友好,也不像精致的应用程序那样现代。它不会手把手教你,如果你告诉它去做,它会乐意执行破坏性的操作,但这正是重点。备份并不是关于美观或舒适。如果你在寻找更多备份数据的选项,可以查看 这些开源备份选项。