我的文件可以在所有设备之间同步,无需服务器,感觉就像魔法一样
文件同步是我无法离开的服务,我会对处理同步的任何工具进行严格评估。这些年来,我使用过好几个工具,但我一直回到 Unison,这是我最早使用的同步工具之一。Unison 提供的同步方式,甚至比一些新应用都更出色。它没有像 Syncthing 这样的工具那样精致,但依旧运行得非常顺畅。Unison 并不张扬。一旦同步完成,一切都会及时更新,不会因为云端路由、排队或第三方上传而延迟。
我的笔记本电脑和台式电脑现在在所有事情上都意见一致
他们两个都没有上传过任何文件
我使用了云存储——主要是 Google Drive 和 Dropbox——来在多个设备上保存文件。事实上,在某个阶段,我研究出了所有让 OneDrive 按我需要的方式同步的技巧。但尽管我尽了最大努力,文件可用性有时仍然是个问题,而且如果我的网络很慢,同步会导致非常长的等待时间。
使用 Unison,我在笔记本电脑和台式机上设置了相同的文件夹,同步几乎是即时的。我收到消息说一切都是最新的,而且速度非常快,感觉像是完全跳过了扫描、上传和验证。
只有当你理解了 Unison 在底层是如何工作的,它的速度才说得通。它会比较同一目录的两个副本,并跟踪它们的状态。当你第一次运行它时,它会记录目录的状态,此后,它只关心已更改的部分。所以它是在比较轻量级的归档记录,而不是重新读取和重新上传每个文件。
该工具可以轻松同步。使用其命令行版本可以省略显示进度条或活动可视化仪表板的步骤,如果目录中没有任何更改,它会安静地退出。
整个过程避免将任何数据上传到服务器。设备不是通过服务器,而是通过 SSH 或本地同步直接相互通信。当我从笔记本切换到台式机时,我运行 Unison,它会协调我所有的数据。文件保存在每台机器的本地。
只有当文件不匹配时,事情才会变得有趣
大多数工具会直接选出赢家——而这个工具让你参与决策
同步工具在文件完全相同时通常能很好地工作。因此,我通过在两台设备上编辑同一个同步文件夹,引入了冲突和不对称。在我的台式机上,我删除了一个文件,而在我的笔记本电脑上,我添加了几个额外的文件。当我运行 Unison 时,我不确定会发生什么,但该工具采取了最安全的方式,显示了发生了哪些变化,并允许我决定该怎么处理。
这是 Unison 与我使用过的大多数同步工具之间的一个显著差异。它们通常试图做到隐形,以至于替你做出重要决定。这会导致覆盖操作,这些操作并不代表最适合你的方式,或者产生重复,使你的数据结构混乱且令人困惑。一旦文件以两种不同方式被编辑,Unison 会将它们标记为冲突,并将关键操作的控制权交还给你。
这种控制建立了对工具的信任。我从不担心自己是否拥有文件的最佳版本,因为最终决定权在我手中。下面是 Unison 在一些常见场景中的表现方式。
情况 | Unison 做什么 | 为什么重要 |
|---|---|---|
在两台设备上进行不同的编辑 | 标记冲突 | 你决定保留哪个版本 |
删除一侧 | 同步前的提示 | 不会意外丢失数据 |
|
添加新文件 | 建议传播,等待确认 | 没有重复或混淆 |
Unison 会显示需要你注意的事项。即使更改没有冲突,它也会在执行任何操作之前告诉你它计划做什么。
它可以在我所有的设备上扩展,而不需要“主”服务
一个简单的模式让一切保持同步
Unison 在两台设备之间同步效果很好。这就引出了一个问题:三台或四台设备呢?这种设计非常适合成对的副本。然而,一旦你掌握了正确的模式,扩展就很简单。
一个简单的中心辐射式设置被证明是最可靠的扩展架构。我的桌面是我的中心,其他设备分别与它同步。这种设计消除了每个设备可能与其他每个设备同步的集群式网络。
实际上,这意味着:
- 在切换设备之前,我会将笔记本电脑与台式电脑同步。
- 我所做的任何更改都会通过集线器反映回去。
- 所有设备最终会收敛到相同的状态。
这个集线器只是另一台机器,整个设置不需要中央服务器来协调。我坚持手动运行 Unison,即使它有一个自动监控更改的重复模式。手动操作只需几秒钟,并且让我知道何时发生了对账。这是一个不需要 NAS 设置、租用服务器或信任任何外部服务的系统。
在安装过程中我几乎放弃了——这就是权衡
Unison 不是最精致的同步工具,这在设置过程中就能看出来。如果你使用命令行版本,你必须熟悉路径和目录,并且如果你在跨机器同步时,需要了解 SSH。
撇开这一点不谈,它并不只是替代我其他的同步工具和设置;它引入了对同步可能性的全新视角。我的文件不必经过任何服务。







