Rsync+inotify实现实时同步
首先修改/etc/sysctl.conf
fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576 sysctl -p
下载inotify软件包,解压
tar xf inotify-tools-3.14.tar.gz cd inotify-tools-3.14/ ./configure && make && make install
监测/www/html/为例,复制窗口,在其目录下进行操作时,会有输出
inotifywait -mrq -e modify,attrib,create,delete,move /www/html/

-m是要持续监视变化。 -r使用递归形式监视目录。 -q减少冗余信息,只打印出需要的信息。 -e指定要监视的事件列表。 access 访问,读取文件。 modify 修改,文件内容被修改。 attrib 属性,文件元数据被修改。 move 移动,对文件进行移动操作。 create 创建,生成新文件 open 打开,对文件进行打开操作。 close 关闭,对文件进行关闭操作。 delete 删除,文件被删除。
实时监控inotify脚本
vim /opt/inotify INOTIFY_CMD="inotifywait -mrq -e modify,attrib,create,delete,move /www/html/" RSYNC_CMD="rsync -avzH --delete --password-file=/etc/rsync_passwd /www/html/ rsync://backuper@192.168.200.114:/www root" $INOTIFY_CMD |while read A B C do if [ $(pgrep rsync | wc -l ) -le 1 ] then $RSYNC_CMD fi done

开启脚本后启动inotify实时监测,如果监测到输出信息后,执行if语句:过滤rsync进程,如果当前rsync没处于正在执行状态的话,就执行远程同步命令
本帖子也是纯手工制作,转载请标明出处-----------burukku(づ。◕ᴗᴗ◕。)づ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构