是否有一个工具可以挂钩到两个目录并在某些内容发生变化时立即同步它们?

Modified on: Sat, 30 Jun 2018 07:31:30 +0800

我在两台机器servercluster上有大量的模拟目录,我想保持同步。基本情况是文件很少改变,但是当模拟完成时,许多大文件会立即更改,我们希望它们在关闭后立即同步。

因此我假设使用rsync的cronjob不理想,cronjob因为它以固定的时间间隔调用rsync,我可能选择太大或太小,rsync因为它不应该检查文件的修改因为我和模拟工作是唯一访问它们的人。

所以我的想法是使用inotify(请参阅此问题)来检测模拟目录中的更改循环并然后分叉到更改文件的rsync。但是我不确定在fork完成时是否会意外地跳过关闭的文件。 (也可能因为inotify调用rsync再次同步刚刚同步的文件而导致无限循环...)所以在我尝试太多之前,我重复我的问题:< / p>

  

是否有工具挂钩到两个目录并在某些内容发生变化时立即同步?

(基本上这会像离线保管箱一样,我猜)

最佳答案

查看lsyncd

  

Lsyncd监视本地目录树事件监视器接口(inotify)。它聚合并组合事件几秒钟,然后生成一个(或多个)进程以同步更改。默认情况下,这是rsync。因此,Lsyncd是一种轻量级的实时镜像解决方案,相对容易安装,不需要新的文件系统或块设备,也不会妨碍本地文件系统的性能。

这不是双向的,但从你的问题我明白你也不需要。如果您需要双向同步,Unison是一个很好的答案,除非有没有inotify支持。另外,请查看这个问题

双向同步的第三件事是DRBD,块级实时同步系统,包含在主线中核心。不幸的是,由于它几乎是同步的,因此需要快速的互联网连接。

作者:Community,Olli

相关问答

添加新评论