linux

Linux_290_Inotifywait目录事件检测

2022-10-26  本文已影响0人  为宇绸缪

Inotify命令工具

上述操作我们安装好了Inotify-tools软件,生成2个重要的命令

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 显示时分秒
上一篇下一篇

猜你喜欢

热点阅读