在 Linux 机器间同步 $HOME

在 Linux 机器间同步 $HOME

有哪些方法可以跨机器(目前有 2 台)同步我的完整 $HOME?所需功能:

  • 排除树外的符号链接,mount --bind这样我就可以拥有主目录之外的大数据,但仍在内部链接(比如说.wine)。
  • 双向同步,自动优先。
  • 最好采取某种形式的冲突解决方案
  • 没有国外服务器

到目前为止,我已经研究过 owncloud,但是客户端往往会在数据量达到约 25GB 时崩溃 :-(。而且它不支持符号链接。

答案1

对于双向同步,你应该使用 unison (http://www.cis.upenn.edu/~bcpierce/unison/) 因为 rsync 不擅长双向同步。Unison 通过 ssh 工作,并提供命令行界面和图形用户界面。解决冲突必须手动完成(相信我,手动完成更好)。

大多数 GNU/Linux 发行版在其存储库中都有 unison,图形界面大多来自单独的包,如 unison-gtk 或类似的包。

编辑:无法通过 ftp 工作,只能通过 ssh。此外,您还需要在源和目标上都安装它。

答案2

您应该能够使用运行的 cronjob 来执行此操作rsync

Rsync 是一种快速且用途极为广泛的文件复制工具。它可以在本地复制、通过任何远程 shell 复制到/从另一台主机复制,也可以复制到/从远程 rsync 守护进程复制。它提供了大量选项来控制其行为的各个方面,并允许非常灵活地指定要复制的文件集。它以其增量传输算法而闻名,该算法通过仅发送源文件和目标中现有文件之间的差异来减少通过网络发送的数据量。Rsync 广泛用于备份和镜像,并作为日常使用的改进复制命令。

        --safe-links            ignore symlinks that point outside the tree

相关内容