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