使用 rsync 双向同步目录

使用 rsync 双向同步目录

我碰巧知道 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

我根据自己的需要编写了这个小工具:

https://github.com/dooblem/bsync

它使用 rsync 并可以处理文件移动。

答案4

另一个优秀的双向同步工具......自由文件同步

相关内容