如何实现user1对userN文件的双向同步,同时保持mtimes?

如何实现user1对userN文件的双向同步,同时保持mtimes?

用户1想要在两台机器之间进行双向同步。用户1是的成员组2并且有一个非特权的 ssh 隧道。有很多文件和目录,例如:

rwxrwx--- userN group2  enclair/WEB/CLIENTS/VictorMarty

一些文件在两台机器上进行编辑,需要手动合并。因此,我选择了 Unison,而不是双方的 rsync 工作。

unison 的首选项文件:

perms = -1
#group = true
#owner = true
times = true

我使用的双向同步命令:

$ unison "profile" -perms 0 -dontchmod

输出/结果:

...
UNISON 2.48.3 finished propagating changes at 02:29:24.90 on 13 Sep 2015

Saving synchronizer state
Synchronization incomplete at 02:29:25  (0 items transferred, 1 skipped, 60 failed)

failed: enclair/WEB/CLIENTS/VictorMarty 

times我可以通过在 profile.prf 文件中注释掉它来使其工作。在此过程中丢失 mtime 元数据。

我看到一个可以 sudo unison 并与另一侧 sudo --server-cmd,这样实际上 unison 就会以 root 身份执行,但连接仍然是普通用户。

这是实现双向同步保持文件修改时间的方法,最好保持 user1 吗?

答案1

根据同步所需的时间范围,您也许可以使用两个 rsync 进程。设置一个 cron 作业rsync -au <source> <dest>在每个主机上运行。这应该使两台主机在一定的时间范围内“同步”。您还可以使用 inotify 在文件更改时运行 rsync。

相关内容