检测unix中的目录更改

我如何跟踪UNIX中特定目录的更改? 例如,我启动一些实用程序,在执行过程中创build一些文件。 我想知道在一次特定的启动过程中创build了哪些确切的文件。 有没有简单的方法来获得这样的信息? 问题是:

  1. 脚本执行后,我无法刷新目录内容
  2. 使用散列作为复合部分的名称创build的文件。 没有可能从脚本中获取这个散列用于后续search。
  3. 可能会同时执行几个脚本,我不希望在同一个文件夹中看到另一个进程创build的文件。

请注意,我不想知道目录是否已经改变了 ,因为我需要的文件名,理想情况下可以grepped匹配特定的模式。

您需要订阅文件系统更改通知 。

你应该使用FAM,gamin或inotify来检测文件何时被创建,关闭等。

您可以使用strace -f myscript来跟踪脚本所做的所有系统调用,并使用grep来过滤创建新文件的系统调用。

您可以使用脚本命令来跟踪启动的命令。

你可以使用Linux审计系统。 这里是一个howto链接:

http://www.cyberciti.biz/tips/linux-audit-files-to-see-who-made-changes-to-a-file.html