innotifywait跟踪更改不包括根操作

时间:2015-11-23 08:00:21

标签: bash io monitoring system-calls

我正在使用innotify来跟踪用户的文件更改,并且能够通过将文件记录到日志文件来有效地跟踪使用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执行的操作的日志记录?

1 个答案:

答案 0 :(得分:0)

我不认为这是可能的,当然不是使用inotifywatch。 inotify api本身根本不提供该信息。正如联机帮助页所述:

  

inotify API不提供有关触发inotify事件的用户或进程的信息。特别是,通过inotify监视事件的进程没有简单的方法来区分它触发的事件和其他进程触发的事件。

您可以做的是根据文件名进行过滤。或者,如果您知道进行其他更改的进程,请与其自己的日志文件进行比较。