侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

服务器篇09-搭建inotify文件监控

2023-11-14 星期二 / 0 评论 / 0 点赞 / 51 阅读 / 4188 字

搭建inotify文件监控下载安装yum -y install gcc cc automake libtoolwget http://www.zhaojunhui.cn/myfile/office/i

搭建inotify文件监控

下载安装

yum -y install gcc cc automake libtoolwget http://www.zhaojunhui.cn/myfile/office/inotify-tools-3.14.tar.gztar xvf inotify-tools-3.14.tar.gzcd inotify-tools-3.14.tar./configuremake && make install

说明信息

在系统下执行man inotify 、 man inotifywait、man inotifywatch可查看相关命令信息,ls /proc/sys/fs/inotify/可以看到显示 max_queued_events max_user_instances max_user_watches 则说明支持inotify

事件参数

事件名称事件描述
IN_ACCESS文件访问事件
IN_MODIFY文件修改事件
IN_ATTRIB文件属性被修改事件,如 chmod、chown、touch 等
IN_CLOSE_WRITE可写文件被关闭事件
IN_CLOSE_NOWRITE不可写文件被关闭事件
IN_OPEN文件打开事件
IN_MOVED_FROM文件被移走,如 mv
IN_MOVED_TO文件被移来,如 mv、cp
IN_CREATE文件或目录创建事件
IN_DELETE文件或目录被删除事件,如 rm
IN_DELETE_SELF自删除,即一个可执行文件在执行时删除自己

用法

inotifywait [选项] <FILE1> <FILE2> . . .

-h 或 --help 显示帮助--exclude <pattern> 指定排除(忽略)部分文件或目录,这些文件或目录上不监听任何事件,正则表达式书写(相对路径)FMT: # --exclude 'Runtime' //忽略对Runtime目录的事件监听--excludei <pattern> 与--exclude相同,区别是此选项正则表达式忽略大小写-m 或 --monitor 持续保持监听(如果不加此选项,则监听到一次后便退出)-d 或 --daemon 以守护进程方式后台运行(除了在后台运行外,与-m选项一样)-r 或 --recursive 递归监听其下所有子目录及文件--fromfile <file> Read files to watch from <file> or '-' for stdin.-o 或 --outfile <file> 将事件输出到指定文件,而不输出到屏幕  FMT: -o /var/log/inotifywait.log-s 或 --syslog 将错误发送到系统日志,而不是输出到屏幕-q 或 --quiet 打印较少信息(仅打印事件)-qq 不打印任何信息(静默方式)--format <fmt> 设置打印屏幕的格式,常见选项:%T时间;%w触发事件文件所在绝对路径;%f触发事件文件名称;%e触发的事件名称;  FMT: # --format '%T %f %e' --timefmt <fmt> 指定输出时间内容,相当于将时间赋值给%T  FMT: # --timefmt '%y-%m-%d %H:%M'-c 或 --csv 用CSV格式打印事件-t 或 --timeout <seconds> 指定一次性监听时间,超时退出监听(值为0表示永不超时,单位:秒),不可与 -m -d 连用  FMT: # -t 60 //设定监听60秒,60秒内监听到事件立即退出,如果监听不到事件60秒后也退出-e 或 --event <event1> [ -e|--event <event2> ... ] 指定要监听的事件(多个事件用逗号分割)  FMT: # -e 'create,delete,close_write,attrib,moved_to'

创建共享库文件

ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib/libinotifytools.so.0ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0

创建文件测试示例

mkdir /test/inotify-testinotifywait /test/inotify/

另一个窗口进入该目录则提示

Setting up watches.Watches established./test/inotify/ OPEN,ISDIR inotify-test

在inotify服务器上写入脚本并后台执行,与rsync合并使用实现不同服务器间文件实时传输

#!/bin/bashSRC=/www/wwwroot/html/SRC2=/test/backup/inotifywait -mrq --timefmt '%y-%m-%d %H:%M' --format '%T %f %e' -e modify,create,move,delete,attrib $SRC |while         read line doecho "$line" > /var/log/inotify_web 2>&1/usr/bin/rsync -rvzp --delete --progress $SRC 192.168.40.129:$SRC2;done &

广告 广告

评论区