![备份与同步](https://linux22.com/image/24033/%E5%A4%87%E4%BB%BD%E4%B8%8E%E5%90%8C%E6%AD%A5.png)
我想在家里的不同计算机之间同步我的个人文档存储库。如今,该文件夹位于双启动工作站的硬盘驱动器的专用分区下。
我的配置如下:
- 运行 Ubuntu 11 和 Windows Xp 的双启动工作站(使用专用分区简单地共享文档)
- 运行 Ubuntu 12.04 的笔记本电脑(今天无法访问文档)
- 一个带有外部硬盘驱动器的免费盒子
我想要的是能够将该文档文件夹与笔记本电脑同步,并且除了在连接到 freebox 的硬盘驱动器上有一个“备份”之外。
我应该使用什么工具(rsync
、、unison
其他?)
答案1
如果您始终以同一方向同步,请使用 rsync。如果您要在两个方向上同步,请使用一致。 Unison 同时支持 Linux 和 Windows;该文档解释了如何在 Windows 下进行设置(您还需要 SSH 客户端)。
要在两个以上位置之间进行同步,请选择一个作为主位置,并将所有其他位置与主位置同步。在这里,设置工作站和笔记本电脑以与 Freebox 同步。
您需要在 Freebox 上有一个一致的二进制文件。由于它运行 Linux 并具有 x86 处理器,因此如果它还没有一致,您可以从任何 32 位 Linux 安装中复制二进制文件。
答案2
我认为 rsync 不适合您的要求,因为它不会自动处理多个位置对同一文档的更新。文件删除也是同样的道理。您可以手动执行此操作,但这在某些时候肯定会出现问题。
我从未使用过 unison,但它似乎是适合您的用例的工具。
也就是说,我还想提一下分布式版本控制系统,如 Mercurial、Git、Bazaar 等。它们还有一个额外的好处,即您不会丢失文档的旧版本。然而,它们最适合处理文本文件;当同一文档在多台计算机上更改时,像 LibreOffice 文档之类的二进制文件将需要更多工作。
更新:如果您想在第三台计算机上进行真正的备份,您应该考虑使用单独的备份解决方案,因为这将保留旧文件。 rsync 也可以做到这一点(如果您省略该--delete
选项),但这在某些时候会再次出现问题:旧文件将填满您的文档文件夹,而与旧的已删除文件同名的新文件将覆盖它们。
可以使用 dejadup、duplicity、rsnapshot 或 rdiff-backup 等简单的备份系统来实现此目的。
答案3
我通过 ssh 使用 rsync。对于备份,你可以这样做:
http://www.mikerubel.org/computers/rsync_snapshots/
基本上,我使用 ssh 密钥和 cron 作业设置了 rsync。上面的链接涵盖了大部分(或全部)内容。
我也使用口是心非的方式进行备份,但我犹豫是否推荐它。它有效,但很笨拙。