您可以使用内核内机制inotify来监视访问的文件。
首先,您应该检查inotify内核中是否已打开:
pbm@tauri ~ $ zcat /proc/config.gz | grep CONFIG_INOTIFY
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
接下来要做的是安装inotify-tools。您可以在项目页面上找到有关各种发行版的说明-它应该位于所有主要发行版的存储库中。
之后,inotify准备工作:
inotifywait /dirs/to/watch -mrq
(m=在一个事件后不退出,r=递归,q=安静)
例如-输出后 ls /home/pbm
pbm@tauri ~ $ inotifywait /bin /home/pbm -mq
/bin/ OPEN ls
/bin/ ACCESS ls
/bin/ ACCESS ls
/home/pbm/ OPEN,ISDIR
/home/pbm/ CLOSE_NOWRITE,CLOSE,ISDIR
/bin/ CLOSE_NOWRITE,CLOSE ls
重要的是正确设置监视目录:
- 不要
/递归观看-对/dev和有很多读/写操作/proc
- 不必递归观看首页目录-使用应用程序时,对应用程序配置目录和浏览器配置文件目录的读/写操作很多
在/proc/sys/fs/inotify/max_user_watches其中的配置选项显示可以同时监视多少个文件。默认值(对于Gentoo)不是很高,因此,如果将watcher设置为/home/您可能会超出限制。您可以使用echo(需要root访问权限)来增加限制。
echo 524288 > /proc/sys/fs/inotify/max_user_watches
但在此之前,您应该阅读一下这种变化的后果。
您可能感兴趣的选项:
-d =守护程序模式
-o file =输出到文件
--format =用户指定的格式,有关更多信息 man inotifywait
-e EVENT=什么事件应该被监控(例如access,modify等,在更多信息man)