美文网首页linux
Linux_290_Inotifywait目录事件检测

Linux_290_Inotifywait目录事件检测

作者: 为宇绸缪 | 来源:发表于2022-10-26 09:34 被阅读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 显示时分秒
    

    相关文章

      网友评论

        本文标题:Linux_290_Inotifywait目录事件检测

        本文链接:https://www.haomeiwen.com/subject/ocdazrtx.html