实时本地文件同步

Adr*_*der 6 real-time rsync synchronization

如何为两个本地目录设置即时文件同步?问题是我需要实时(15、10 甚至 5 秒太慢),而且我不希望创建目标根目录。

例如,类似于...

cp -fr sourcea/* /some/destdir
cp -fr sourceb/* /some/destdir
cp -fr sourcec/* /some/destdir
Run Code Online (Sandbox Code Playgroud)

捕获删除也很好,尽管它不是一个交易破坏者。

我不希望在 destdir 中创建“sourcex”。(因此 *)。我试过使用 rsync,它显然不接近甚至接近实时,以及几个通用同步系统。但是,大多数人需要 1 对 1 同步,而不仅仅是内容。

有什么建议?我已经为此奋斗了一段时间,所以任何帮助将不胜感激!

phe*_*mer 10

文件系统覆盖可能会更好地解决这个问题。使用类似aufs 的东西,您可以从几个组合目录中创建一个“虚拟”目录。您可以配置写入是否应传播回原始目录,或使用写时复制方法单独保留原始目录,或完全禁止写入。

但是,要回答您的原始问题,您可以使用lsyncd 之类的东西在文件被修改后立即触发 rsync。lsyncd 使用 rsync,它能够在不保留目录名称的情况下同步目录内容。通常这样做的方法是同步sourcea/./some/destdir/. 重要的部分是源路径末尾的点。这是一个通用技巧,可用于 rsync 以外的其他事情,例如 cp。