前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >inotify-rsync文件实时同步问题记录

inotify-rsync文件实时同步问题记录

作者头像
felixxue
发布2022-12-30 10:01:30
4830
发布2022-12-30 10:01:30
举报
文章被收录于专栏:xueflyxuefly

1. 在inotify-tools配合rsync实现文件实时同步方案中,操作小文件未发现弊病,而在上传一个稍微大点的文件,比如十几二十几兆的文件时,弊病就会显露:

报错日志

如图分析原因:通过ftp或者其他客户端上传一个稍大点的文件到文件同步监控目录下,inotifywait会实时监控到此目录下该文件的创建及修改,此时上传文件对文件修改可能是每1024个字节一次写入(可能更多,根据写文件客户端而定),因此在一定时间内造成了大量的并发,因为每次修改都会触发inotifywait检测到MODIFY类型的文件操作,同时也会调用rsync传输工具对该文件进行传输,在大量并发的情况下,对该文件的文件传输也会产生大量并发的传输,会造成io阻塞。 修改方案:在正常对文件的操作下,都会有CLOSE_WRITE,因此我们不需要让inotifywait监控MODIFY类型的事件,就不会触发大量并发的文件传输。 附上部分文件同步监控shell代码:

代码语言:javascript
复制
    /usr/local/bin/inotifywait -mrq --format '%Xe %w %f' \
        -e create,delete,attrib,close_write,move \  #此处删除modify事件,避免引发大量并发同步
        ${path} | while read file;
    do
        rsync_changed "${file}" &
    done
    echo "inotifywait watch ${path} exit with $?" >> ${LOGFILE}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 在inotify-tools配合rsync实现文件实时同步方案中,操作小文件未发现弊病,而在上传一个稍微大点的文件,比如十几二十几兆的文件时,弊病就会显露:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档