如何在家庭网络上的两台 PC 之间同步文件/数据?

Gau*_*ola 12 sync 10.10

我有一台台式机和一台笔记本电脑,它们的主目录中的文件几乎相同。有时我会在~/Music~/Documents等中进行更改。但这些更改当然不会影响其他机器。

所以我想有一个解决方案来同步我的笔记本电脑和台式机的主文件夹中的所有数据。我可以偶尔用交叉电缆连接它们。

我不想使用 Ubuntu One 或 Dropbox(文件很大,当两者都在家庭网络上时不需要使用 Internet)。

Iai*_*ane 8

对于一小部分文件,我建议使用DropboxUbuntu One,但似乎您想在计算机之间同步您的音乐收藏,出于以下两个原因,这些都不是特别适合:

  • 它们都同步到互联网,这意味着大量文件将需要很长时间才能下载和上传
  • 它们提供的空间有限(可以购买更多),这意味着对于大量文件,您最终可能不得不花很多钱

我用于本地复制的Unison没有这些限制(本质上)。您可以通过本地网络同步,这意味着它速度很快(如果您愿意,也可以通过互联网同步),并且可以随心所欲地同步 — 仅受可用磁盘空间和带宽的限制。Unison 具有 GUI 和终端界面,这意味着您可以在桌面和服务器上平等地使用它。有对Ubuntu的wiki一个很好的指导,你不妨参考一下,如果你选择使用统一。


Sca*_*ine 7

最好的工具是命令行工具“Rsync”。如果您需要 GUI,请尝试基于 Rsync 概念的 Unison 或 LuckyBackup。Unison 和 LuckyBackup 都在存储库中。

rsync 的一个例子可能是:

rsync -vxtr /home/scaine/Pictures/ /home/OtherUser/Pictures/

...这将使我的图片目录与其他用户的图片目录同步。我指定的选项将验证任何副本,在复制期间保留时间戳/权限,并将遍历找到的子目录。执行“man rsync”以获得更多选项。

至于将您的 PC 连接在一起 - 将它们放在交换机/集线器上或使用交叉电缆,然后通过 samba 共享目录。

编辑:如果目标是“镜像”两台 PC,有几点需要说明。此命令只会将文件从源“添加”到目标。如果您需要删除,那么您还需要 -delete 选项。

经过调查,Rsync 似乎并没有特别好地处理镜像。看到这一点,您会发现在此更新期间,您可能会发现旧文件覆盖了新文件!更糟糕的是,即使您让 -update 选项起作用并防止这种行为,它也不会用较新的文件“更新”较旧的文件 - 它只会“跳过”它。不太理想。

最后,要执行双向同步,您需要运行相同的命令,但要反转源/目标。当然,这现在用途有限,因为您的第一个命令(假设您使用了 -delete 选项)将删除目标上不存在源上的任何文件。Unison 从记忆中很好地处理了双向同步。

如果您认真地尝试保持多个编辑同步,那么 Dropbox 解决方案是最好的前进方式。如果您可以再看看 UbuntuOne 或 Dropbox,符号链接可能是一种解决方案 - 仅符号链接您的文档文件夹,例如,同时将图片和音乐保持在 One/Dropbox 之外,并使用此 rsync/unison 解决方案来处理大事?