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

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

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

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

对于一小部分文件,我建议使用Dropbox或Ubuntu One ,但似乎你想要在计算机之间同步你的音乐collections,这些都不是特别适合这种情况,原因有两个:

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

Unison ,这是我用于本地复制的,没有这些限制(固有地)。 您可以通过本地网络同步,这意味着它很快(如果您愿意,也可以通过互联网进行同步),并且可以根据需要进行同步 – 仅受可用磁盘空间和带宽的限制。 Unison有GUI和终端接口,这意味着您可以在桌面和服务器上同等使用它。 如果你选择使用Unison,你可以参考Ubuntu wiki上的一个很好的指南 。

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

rsync的一个例子可能是:

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

…将我的Pictures目录与OtherUser的Pictures目录同步。 我指定的选项将validation任何副本,在复制期间保留时间戳/权限,并将遍历找到的子目录。 做“man rsync”以获得更多选择。

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

编辑:如果目标是“镜像”两台PC,一些好点。 此命令仅将“添加”文件从源“添加”到目标。 如果你需要删除,那么你也需要-delete选项。

经过调查,似乎Rsync 不能很好地处理镜像。 看到这一点,意识到在更新过程中您可能会发现旧文件覆盖较年轻的文件 ! 更糟糕的是,即使你得到-update选项来工作并防止这种行为,它也不会用更年轻的文件“更新”旧版本 – 它只会“跳过”它。 很难理想。

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

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

如果您不想或不喜欢使用终端,可以使用几种基于gui的替代方案

grsync顾名思义是rsync的基本指南。

unison unison使用比grsync更多的备用后端,但grsync他们做同样的事情

您可以从软件中心或使用apt-get安装它们

简单回答:

 rsync -vzu user@ip.address:/remote/dir/* /local/dir 

-u选项比较日期,仅在目标日期早于源日期时进行传输。

-v表示详细,-z表示使用压缩。