Inotify+rsync实现实时数据同步
使用rsync可以实现数据同步,但是即使使用crontab定时任务最小执行间隔为1分钟,在数据实时性要求比较高场合需使用inotify+rsync实现实时同步
下载inotify
1 | wget https: / / github.s3.amazonaws.com / downloads / rvoicilas / inotify - tools / inotify - tools - 3.14 .tar.gz |
安装
1 2 3 4 5 | tar - xf inotify - tools - 3.14 .tar.gz yum - y install gcc - c + + . / configure - - prefix = / usr / local / inotify - tools - 3.14 make && make install ln - s / usr / local / inotify - tools - 3.14 / / usr / local / inotify |
显示帮助
1 | / usr / local / inotify / bin / inotifywait - - help |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | inotifywait 3.14 Wait for a particular event on a file or set of files. Usage: inotifywait [ options ] file1 [ file2 ] [ file3 ] [ ... ] Options: - h| - - help Show this help text. @< file > Exclude the specified file from being watched. - - exclude <pattern> Exclude all events on files matching the extended regular expression <pattern>. - - excludei <pattern> Like - - exclude but case insensitive. - m| - - monitor Keep listening for events forever. Without this option, inotifywait will exit after one event is received. - d| - - daemon Same as - - monitor, except run in the background logging events to a file specified by - - outfile. Implies - - syslog. - r| - - recursive Watch directories recursively. - - fromfile < file > Read files to watch from < file > or ` - ' for stdin. - o| - - outfile < file > Print events to < file > rather than stdout. - s| - - syslog Send errors to syslog rather than stderr. - q| - - quiet Print less (only print events). - qq Print nothing ( not even events). - - format <fmt> Print using a specified printf - like format string; read the man page for more details. - - timefmt <fmt> strftime - compatible format string for use with % T in - - format string. - c| - - csv Print events in CSV format . - t| - - timeout <seconds> When listening for a single event, time out after waiting for an event for <seconds> seconds. If <seconds> is 0 , inotifywait will never time out. - e| - - event <event1> [ - e| - - event <event2> ... ] Listen for specific event(s). If omitted, all events are listened for . Exit status: 0 - An event you asked to watch for was received. 1 - An event you did not ask to watch for was received (usually delete_self or unmount), or some error occurred. 2 - The - - timeout option was given and no events occurred in the specified interval of time. Events: access file or directory contents were read modify file or directory contents were written attrib file or directory attributes changed close_write file or directory closed, after being opened in writeable mode close_nowrite file or directory closed, after being opened in read - only mode close file or directory closed, regardless of read / write mode open file or directory opened moved_to file or directory moved to watched directory moved_from file or directory moved from watched directory move file or directory moved to or from watched directory create file or directory created within watched directory delete file or directory deleted within watched directory delete_self file or directory was deleted unmount file system containing file or directory unmounted |
监控一个文件夹,开启另外一个窗口创建修改删除文件
1 | / usr / local / inotify / bin / inotifywait - mrq - - timefmt '%d/%m/%y %H:%M' - - format '%T %w%f ' - e create,delete,close_write,modify / data / |
创建删除打开修改或者重定向都会有输出
1 2 | touch test vim test |
显示如下
写一个脚本配合rsync实现数据同步
1 2 3 4 5 6 7 8 9 | #!/bin/bash inotify = / usr / local / inotify / bin / inotifywait $inotify - mrq - - format '%w%f' - e create,close_write,delete,motify / data \ | while read file do cd / && rsync - az . / data - - delete rsync_backup@ 192.168 . 1.4 ::backup / \ - - password - file = / etc / rsync.password done |
rsync安装配置参考文档 https://www.cnblogs.com/minseo/p/8080426.html
把该脚本设置在后台及开机启动运行即可实现实时的数据同步
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2018-03-12 Zabbix监控介绍及安装配置