如何“正确”使用 rsync 和 inotify 同步数百万个文件?

sea*_*ook 7 rsync inotify

假设我有 100 万个文件,文件列表大概是 20MB。如果我只添加一个文件,inotify会告诉rsync传输文件列表和新文件。我的网络不好,我可能不得不限制带宽 ( --bwlimit)。

可能会一次添加多个文件,并且鉴于网络传输速度,可能会同时运行多个 rsync。

这值得么?有没有更好的办法?

fak*_*ker 12

您的案例听起来正是lsyncd 的用途。
它使用 inotify 监视目录并生成仅包含更改文件的 rsync。
它聚合了几秒钟的变化。
因此,当您在一秒钟内进行 5 次更改时,它只会向目标服务器生成一个新的同步进程。

  • @gcb 我得到了一个相当不错的服务器和超过 100 万个文件夹(不是 lsyncd 监视文件夹,不是文件!)的设置,甚至需要大约 2 天的时间才能完成完整的启动同步,低单线程 inotify_add_watch 性能似乎成为限制因素。 (2认同)