![lsync、unison 或其他 inotify 自动同步工具..?](https://linux22.com/image/518180/lsync%E3%80%81unison%20%E6%88%96%E5%85%B6%E4%BB%96%20inotify%20%E8%87%AA%E5%8A%A8%E5%90%8C%E6%AD%A5%E5%B7%A5%E5%85%B7..%EF%BC%9F.png)
我有一个应用农场,它生成缩略图并使用 nfs 将它们提供给 Web 服务器农场。但是性能太差,所以我打算在每个 Web 节点上制作文件的本地副本。
我查看了 unison 和 lsync,但是 centOS5.5 repo 中似乎没有可用的 rpm。
我应该使用哪一个,或者其他策略。我迫切需要立即同步,因为用户需要立即在网页上显示缩略图,所以基于 inotify 的工具很好!
编辑:当我说立即时,我的意思是推迟而不是按照某个时间表进行。
最后,lsync 发布了更多版本,因此我使用了它们,并且 lsync 一旦运行就能很好地工作(即在几秒钟内同步),但是它需要事先枚举每个目录,并且对于非常大的文件系统来说需要花费几个小时。
答案1
我迫切需要立即同步,因为用户需要立即在网页上显示缩略图
所以你无法控制负载平衡中的服务器亲和性?是时候买一个新的负载平衡器了。
我查看了 unison 和 lsync,但是 centOS5.5 repo 中似乎没有可用的 rpm。
以前我通过在应用程序中构建复制来实现这一点 - 毕竟,这是知道何时需要复制新内容的第一件事 - 只需几行 PHP 即可向其他节点发布需要获取内容的通知 - 当某个节点离线一段时间后,我会运行 rsync 然后再将其完全恢复在线状态(这种方法使处理离线节点变得更加简单且无干扰)。但是,如果我今天要实现这样的系统,那么我会使用覆盖文件系统来实现 - 也许是堆栈底部的 NFS 并在访问时进行复制。
也可以看看这个帖子
高血压
C。
答案2
我在存储库中没有看到任何内容,但你可能会发现incron
可能会有帮助。
答案3
我最近在我的一台 CentOS 5.x 机器上安装了 unison 版本 2.32.52。
一致地,重要的是要注意全部同步的服务器需要运行完全相同的版本。当链接到其他较旧和较新的 Unison 版本时,Unison 将无法工作。
我发现这个 rpmhttp://rpmfind.net/linux/RPM/dag/redhat/el5/x86_64/unison-2.32.52-1.el5.rf.x86_64.html我在 centos 5.8 上运行成功
至于 lsync,我无法告诉你太多,因为我个人从未使用过它。但我可以说,如果使用得当,Unison 是一款非常棒的工具。
您可以在 crontab 上设置 Unison,以每 1-10 分钟检查一次更改。