我碰巧知道 rsyn,并且我使用 rsync 在我的 mac 和 Linux 服务器之间进行同步,如下所示。
rsync -r -t -v MAC LINUX
rsync -r -t -v LINUX MAC
我希望运行第一个命令来同步,但在 LINUX 中进行更改时我还需要第二个命令。
我错过了什么吗? rsync 是否可以选择在两个目录之间同步?
答案1
您想要双向同步。看看 unison,它是这样做的:http://www.cis.upenn.edu/~bcpierce/unison/
例如,在 Debian/Ubuntu 上:
$ sudo apt-get install unison
$ unison MAC/ LINUX/
如果您遇到权限问题(例如 ext4 -> FAT):
$ unison -perms 0 vlc-2.2.0/ /media/sf_vlc/vlc
Contacting server...
Looking for changes
Reconciling changes
vlc-2.2.0 vlc
new dir ----> / [f]
Proceed with propagating updates? [] y
Propagating updates
答案2
有人声称 rsync 的开发人员不建议将其用于双向同步,但缺乏此声明的来源。
已经推荐的 unison 实用程序将是您更好的解决方案。
另请记住,在使用 rsync 时,您可能必须处理许多 Mac 特定的 HFS+ 内容。因此,请务必在 Mac 上使用正确修补的 rsync3,否则会出现修改日期问题(当使用 Mac OS X 提供的 rsync 2.6.9 时)。如果您不知道如何为 Mac 构建正确修补的 rsync 3,获取 mlbackup,其中包含该内容。 (全面披露:我是 mlbackup 的作者。)从 github 获取它,并确保从下载中下载完整的包。 (mlbackup 存储库不包括本例中您需要的 rsync 3。) http://github.com/MacLemon/mlbackup
答案3
答案4
另一个优秀的双向同步工具......自由文件同步