我需要一些脚本来logging(只是输出到控制台或文件)每个访问某个磁盘或目录(或者适用于我)。 我也想知道究竟(哪个子目录或文件)被访问。 我的系统是Ubuntu的Linux。 这是可能的吗?我该怎么做?
看看inotify,这几乎是它的目的。 IBM在http://www.ibm.com/developerworks/linux/library/l-inotify.html有一个不错的介绍(尽pipe有点过时)
如果是用一个简单的filter脚本来监视单个程序的行为,那么就是你想要的,更一般地看SElinux的“auditd”。
http://en.wikipedia.org/wiki/Strace http://linux.die.net/man/8/auditd
在Windows上,从SysInternals家伙看Filemon。
http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx
你可以使用incron ,它是一个类似cron的工具,用于inotify的文件系统事件。
您可以定义每次发生IN_ACCESS事件时要执行的操作。
configuration和cron一样简单:
<path> <mask> <command>
哪里:
<path>
是一个文件系统path(每个空格都必须加上一个反斜杠) <mask>
是一个符号(请参阅inotify.h;使用逗号分隔符号)或事件的数字掩码 <command>
是在事件上运行的应用程序或脚本 如果你真的确定你想看到那么大的输出,那么你可以使用auditd。 但是如果你想把它打印到一个文件中,它可能会导致无限循环,因为对文件的任何访问都意味着把它打印到你的日志文件中。 打印到日志文件也是访问文件,所以它也应该打印到日志文件。 所以要小心。
即使没有无限循环,这个数据量也会很大。 如果你改变你的问题到你想实现什么,这个监测可能是人们可以build议更好的方式,然后login访问所有文件。