2015-11-23 56 views
1

我正在使用innotifywait跟蹤用戶的文件更改,並能夠有效地跟蹤使用innotifywait工具將文件記錄到日誌文件中是否創建/編輯/刪除文件。innotifywait跟蹤更改排除根操作

但是,當有執行的操作即rsync時,所有更改也會寫入日誌文件。

這裏是執行的rsync的一個示例:

Mon Nov 23 15:42:56 .sidebar.php.KNYJir:DELETED 
Mon Nov 23 15:42:56 .sidebar.php.KNYJir:DELETED 
Mon Nov 23 15:42:56 .sidebar.php.KNYJir:DELETED 
Mon Nov 23 15:42:56 sidebar.php 

下面所附是我使用的命令:

/usr/bin/inotifywait -e create,delete,modify,move -mrq --format %w%f 

我然後將其管到一個無窮while循環來處理和測試,如果已更改的文件存在以確定文件是否存在,以確定它是否爲創建/修改/刪除操作。

難道我們可以排除由root執行的操作的日誌記錄嗎?

回答

0

我不認爲這是可能的,當然不是與inotifywatch。 inotify api本身並不提供這些信息。正如手冊頁所述:

inotify API不提供關於觸發inotify事件的用戶或進程的信息。尤其是,對於通過inotify監視事件的進程來說,區分觸發自身的事件與由其他進程觸發的事件是不容易的。

你可以做的是根據文件名進行過濾。或者,如果您知道進行其他更改的進程,請與自己的日誌文件進行比較。