Linux_290_Inotifywait目录事件检测
2022-10-26 本文已影响0人
为宇绸缪
Inotify命令工具
上述操作我们安装好了Inotify-tools软件,生成2个重要的命令
- inotifywait:在被监控的目录等待特定文件系统事件(open、close、delete等事件),执行后处于阻塞状态,适合在Shell脚本中使用,是实现监控的关键
- Inotifywatch:收集被监控的文件系统使用的统计数据(文件系统事件发生的次数统计)
Inotifywait命令解释
inotifywait用于等待文件或文件集上的一个待定事件,可以监控任何文件和目录设置,并且可以递归地监控整个目录树;
inotifywatch用于收集被监控的文件系统计数据,包括每个inotify事件发生多少次等信息
从上面可知inotifywait是一个监控事件,可以配合shell脚本使用它。与它相关的参数:
语法格式:inotifywait [-hcmrq][-e][-t][–format][-timefmt][…]
-m: 即“–monitor” 表示始终保持事件监听状态。
-d:类似于-m参数,将命令运行在后台,记录出发的事件信息,记录在指定文件里,加上--outfile参数
-r: 即“–recursive” 表示递归查询目录
-q: 即“–quiet” 表示打印出监控事件
-o: 即“–outfile” 输出事情到一个文件而不是标准输出
-s: 即“–syslog” 输入错误信息到系统日志
-e: 即“–event”, 通过此参数可以指定要监控的事件,常见的事件有modify、delete、create、close_write、move、close、unmount和attrib等
-format: 指定输出格式;常用的格式符如:
%w:表示发生事件的目录
%f:表示发生事件的文件
%e:表示发生的事件
%Xe:事件以“X”分隔
%T:使用由-timefmt定义的时间格式
-timefmt:指定时间格式,用于-format选项中的%T格式
利用Inotify软件监控的事件主要是如下
Events 含义
access 文件或目录被读取
modify 文件或目录内容被修改
attrib 文件或目录属性被改变
close 文件或目录封闭,无论读/写模式
open 文件或目录被打开
moved_to 文件或目录被移动至另外一个目录
move 文件或目录被移动到另一个目录或从另一个目录移动至当前目录
create 文件或目录被创建在当前目录
delete 文件或目录被删除
umount 文件系统被卸载
inotifywait命令实践
语法
inotifywait -mrq --timefmt "%F" --format "%T %w%f 事件信息:%e" /data
实际案例
inotifywait -mrq --timefmt "%F" --format "%T %w %f" -e create /data
参数解释
inotifywait 是命令
-m 表示一直处在检测状态
-r 递归的检测
-q 打印出检测的事件信息
--timefmt 对时间格式化
--format 对日志信息格式化
%T 使用由--timefmt所定义的格式
%w 表示显示事件发生的目录
%f 表示事件发生的文件
-e 默认inotifywait是监控所有事件,可以使用-e单独的指定某种事件 events
[root@nfs_machine data]# inotifywait -mrq --timefmt "%F" --format "%T %w %f" -e create /data
2022-03-06 /data/ learn.txt
只要在/data里面创建了新的文件,就可以检测到
inotifywait -mrq --timefmt "%y-%m-%d %T" --format "%T %w %f" -e create /data
%d 日期,几号
%m 月份 1-12
%y 年份的意思,显示后2位
%T 显示时分秒