inotify

匿名 (未验证) 提交于 2019-12-03 00:22:01

inotify工具包有2个重要命令

inotifywatch:使用Linux的inotify接口监听文件系统事件,并输出统计文件或目录接收到的事件

inotifywait:使用Linux的inotify接口高效的监控文件状态是否改变,非常适合搭配shell脚本监控文件


inotifywait命令

格式:inotifywait [-hcmrq] [-e <event> ] [-t <seconds> ] [--format <fmt> ] [--timefmt <fmt> ] <file>

常用的选项:

选项

作用

-m, --monitor

始终保持事件的监听状态

递归查询目录

-q, --quiet

只打印监控的事件信息

排除文件或者目录,不区分大小写

-t <seconds>, --timeout <seconds>

超时时间

-e <event>, --event <event>

监听指定事件,有几个常见的事件如下

以可写方式打开的文件被关闭

moved_from 文件从目录移动

移动文件或目录移动到监视目录

在监视目录下创建文件或目录

--timefmt <fmt>

自定义时间输出格式

常用的时间格式:

--format <fmt>

自定义inotifywait的输出格式,

或目录信息,否则为空

--timefmt 选项的语法格式进行设置


示例1:监控/backup目录下创建文件或目录的事件

[root@localhost inotify-tools-3.13]# inotifywait  -mrq --timefmt '%d-%m-%y %H:%M' --format '%T %w %f' -e create /backup 30-05-18 07:17 /backup/ data   #当在/backup目录下创建目录data时,标准输出了这一条信息 表示inotify捕捉到这个事件了

[root@localhost inotify-tools-3.13]# inotifywait  -m /backup Setting up watches.   Watches established. /backup/ OPEN,ISDIR  /backup/ CLOSE_NOWRITE,CLOSE,ISDIR  /backup/ CREATE hello_world /backup/ OPEN hello_world /backup/ MODIFY hello_world /backup/ CLOSE_WRITE,CLOSE hello_world 

inotifywatch命令:


常见的选项

选项

作用

-v, --verbose

执行程序期间输出一些额外的错误信息

-r, --recursive

递归选项

-t <seconds>, --timeout <seconds>

设置监控时间

-e <event>, --event <event>

监听指定的事件,常见事件

moved_from 文件从目录移动

-d <event>, --descending <event>

按指定事件的事件计数降序输出排序,默认总数的降序排序

-a <event>, --ascending <event>

按指定事件的事件计数升序输出排序,默认总数的升序排序

示例:统计30s内 /backup目录下的发生事件

[root@localhost inotify-tools-3.13]# inotifywatch  -v   -t 30  -r /backup Establishing watches... Setting up watch(es) on /backup OK, /backup is now being watched. Total of 2 watches. Finished establishing watches, now collecting statistics. Will listen for events for 30 seconds. total  modify  attrib  close_write  open  create  filename 36     6       4       9            9     8       /backup/   





下载的网址:https://sourceforge.net/projects/inotify-tools/

版本为inotify-tools-3.13

mkdir /usr/local/src/inotify cd /usr/local/src/inotify

然后把压缩包上传到/usr/local/src/inotify目录下

[root@localhost inotify]# ls  -l /usr/local/src/inotify/ total 384 -rw-r--r--. 1 root root 389473 May 30 04:12 inotify-tools-3.13.tar.gz

解压安装

tar -zxf inotify-tools-3.13.tar.gz  cd inotify-tools-3.13 yum install gcc gcc-devel -y ./configure  --prefix=/usr/local/inotify make && make install

然后添加环境变量

PATH="/usr/local/inotify/bin/:$PATH"

查看一下inotify目录结构

[root@localhost inotify-tools-3.13]# tree /usr/local/inotify -L 1 /usr/local/inotify ├―― bin       ##相关命令 ├―― include     ├―― lib       ##函数库 └―― share     ##帮助文件

可以把帮助文件添加进系统,让用户可以man到

[root@localhost inotify-tools-3.13]#cp /usr/local/inotify/share/man/man1/inotifywait.1 /usr/share/man/man1/inotifywait.1 [root@localhost inotify-tools-3.13]# cp /usr/local/inotify/share/man/man1/inotifywatch.1  /usr/share/man/man1/inotifywatch.1




文章来源: inotify
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!