实时本地文件同步

实时本地文件同步

我怎样才能设置一个立即的两个本地目录的文件同步?问题是我需要实时(15、10 甚至 5 秒太慢),并且我不想创建目标根目录。

例如,类似的东西...

cp -fr sourcea/* /some/destdir
cp -fr sourceb/* /some/destdir
cp -fr sourcec/* /some/destdir

捕获删除也很好,尽管这不会破坏交易。

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

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

答案1

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

但是,要回答您原来的问题,您可以使用类似的东西同步文件修改后立即触发 rsync。 lsyncd 使用 rsync,它能够同步目录内容而不保留目录名称。一般来说,执行此操作的方法是同步sourcea/./some/destdir/.重要的部分是源路径末尾的点。这是一个通用技巧,可用于 rsync 之外的其他事物,例如 cp。

相关内容