3案例3:使用inotifywait工具
3.1 问题
本例要求安装inotify-tools工具,并针对文件夹/opt启用inotifywait监控,完成下列任务:
- 当此目录下出现新建、修改、更改权限、删除文件等事件时能给出提示
- 验证上述监控事件的效果
3.2 方案
inotifywait监控操作:
- inotifywait [选项] 目标文件夹
inotifywait常用命令选项: - -m 持续监控(捕获一个时间后不退出)
- -r 递归监控、包括子目录及文件
- -q 减少屏幕输出信息
- -e 指定监视的 modify、move、create、delete、attrib等事件类别
3.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:安装inotify-tools软件包
1)解包
[root@svr7 ~]# tar xf inotify-tools-3.13.tar.gz -C /usr/src/
2)配置
[root@svr7 ~]# cd /usr/src/inotify-tools-3.13/
[root@svr7 inotify-tools-3.13]# ./configure
3)编译
[root@svr7 inotify-tools-3.13]# make
4)安装
[root@svr7 inotify-tools-3.13]# make
5)检查安装结果(inotifywait程序可用)
[root@svr7 ~]# inotifywait --help
inotifywait 3.13
Wait for a particular event on a file or set of files.
Usage: inotifywait [ options ] file1 [ file2 ] [ file3 ] [ ... ]
Options:
-h|--help Show this help text.
.. ..
步骤二:测试inotifywait监控
1)开启监控任务,置入后台
[root@svr7 ~]# inotifywait -mrq -e create,modify,move,attrib,delete /opt &
[1] 55564
2)测试/opt/目录下的新建、修改、改名、更改权限、删除文件等事件的响应消息
观察新建文件时的监控信息:
[root@svr7 ~]# touch /opt/a.txt
/opt/ CREATE a.txt
/opt/ ATTRIB a.txt
观察修改文件内容时的监控信息:
[root@svr7 ~]# echo Hello > /opt/a.txt
[root@svr7 ~]# /opt/ MODIFY a.txt
/opt/ MODIFY a.txt
观察将文件改名时的监控信息:
[root@svr7 ~]# mv /opt/a.txt /opt/b.txt
/opt/ MOVED_FROM a.txt
/opt/ MOVED_TO b.txt
观察修改文件权限时的监控信息:
[root@svr7 ~]# chmod 600 /opt/b.txt
/opt/ ATTRIB b.txt
观察删除文件时的监控信息:
[root@svr7 ~]# rm -rf /opt/b.txt
/opt/ DELETE b.txt
3)停止监控任务
[root@svr7 ~]# kill -9 %1
[1]+ 已杀死 inotifywait -mr -e create,modify,move,attrib,delete /opt