inotifywait监听php,利用inotifywait监控主机文件和目录
inotifywait 是一個可以實時監控文件變動的工具,它利用linux內核中的inotify機制實現監控功能。查看內核版本
[root@Oracle?~]# uname -r
2.6.32-220.el6.i686
安裝inotify-tools
yum install -y inotify-tools
ll /proc/sys/fs/inotify總計 0-rw-r--r-- 1 root root 0 04-13 19:56 max_queued_events-rw-r--r-- 1 root root 0 04-13 19:56 max_user_instances-rw-r--r-- 1 root root 0 04-13 19:56 max_user_watches如果有上面三項輸出,表示系統已經默認支持inotify,接著就可以開始安裝inotify-tools了
inotifywait相關參數Inotifywait是一個監控等待事件,可以配合shell腳本使用它,下面介紹一下常用的一些參數:-m, 即--monitor,表示始終保持事件監聽狀態。-r, 即--recursive,表示遞歸查詢目錄。-q, 即--quiet,表示打印出監控事件。-e, 即--event,通過此參數可以指定要監控的事件,常見的事件有modify、delete、create、attrib等。
使用:
inotifywait -m /home/zwf/inotify-test/
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format? '%T %w%f %e'? --exclude .*swp --exclude .*done --even close_write ?目錄?|while read? date time file event
do
命令。。。。
done
參數說明
inotifywait
語法:
inotifywait [-hcmrq] [-e ] [-t ] [--format ] [--timefmt ] [ ... ]
參數:
-h,--help
輸出幫助信息
@
排除不需要監視的文件,可以是相對路徑,也可以是絕對路徑。
--fromfile
從文件讀取需要監視的文件或排除的文件,一個文件一行,排除的文件以@開頭。
-m, --monitor
接收到一個事情而不退出,無限期地執行。默認的行為是接收到一個事情后立即退出。
-d, --daemon
跟--monitor一樣,除了是在后臺運行,需要指定--outfile把事情輸出到一個文件。也意味著使用了--syslog。
-o, --outfile
輸出事情到一個文件而不是標準輸出。
-s, --syslog
輸出錯誤信息到系統日志
-r, --recursive
監視一個目錄下的所有子目錄。
-q, --quiet
指定一次,不會輸出詳細信息,指定二次,除了致命錯誤,不會輸出任何信息。
--exclude
正則匹配需要排除的文件,大小寫敏感。
--excludei
正則匹配需要排除的文件,忽略大小寫。
-t , --timeout
設置超時時間,如果為0,則無限期地執行下去。
-e , --event
指定監視的事件。
-c, --csv
輸出csv格式。
--timefmt
指定時間格式,用于--format選項中的%T格式。
--format
指定輸出格式。
%w 表示發生事件的目錄
%f 表示發生事件的文件
%e 表示發生的事件
%Xe 事件以“X"分隔
%T 使用由--timefmt定義的時間格式
inotifywatch
語法:
inotifywatch [-hvzrqf] [-e ] [-t ] [-a ] [-d ] [ ... ]
參數:
-h, --help
輸出幫助信息
-v, --verbose
輸出詳細信息
@
排除不需要監視的文件,可以是相對路徑,也可以是絕對路徑。
--fromfile
從文件讀取需要監視的文件或排除的文件,一個文件一行,排除的文件以@開頭。
-z, --zero
輸出表格的行和列,即使元素為空
--exclude
正則匹配需要排除的文件,大小寫敏感。
--excludei
正則匹配需要排除的文件,忽略大小寫。
-r, --recursive
監視一個目錄下的所有子目錄。
-t , --timeout
設置超時時間
-e , --event
只監聽指定的事件。
-a , --ascending
以指定事件升序排列。
-d , --descending
以指定事件降序排列。
可監聽事件
access文件讀取
modify文件更改。
attrib文件屬性更改,如權限,時間戳等。
close_write以可寫模式打開的文件被關閉,不代表此文件一定已經寫入數據。
close_nowrite以只讀模式打開的文件被關閉。
close文件被關閉,不管它是如何打開的。
open文件打開。
moved_to一個文件或目錄移動到監聽的目錄,即使是在同一目錄內移動,此事件也觸發。
moved_from一個文件或目錄移出監聽的目錄,即使是在同一目錄內移動,此事件也觸發。
move包括moved_to和 moved_from
move_self文件或目錄被移除,之后不再監聽此文件或目錄。
create文件或目錄創建
delete文件或目錄刪除
delete_self文件或目錄移除,之后不再監聽此文件或目錄
unmount文件系統取消掛載,之后不再監聽此文件系統。
總結
以上是生活随笔為你收集整理的inotifywait监听php,利用inotifywait监控主机文件和目录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iis php 假死 nginx,网站假
- 下一篇: 织梦会员登录PHP,DEDECMS会员登