是否有任何类似用户级包装的脚本/程序可以监视应用程序访问的文件,而不影响性能?我试图捕获自动化工作流程(即创建/修改)生成的文件,以便我可以对其生成的文件进行后处理(并且仅处理它生成的文件)。
我尝试在运行前和运行后映射文件,但这不起作用,因为这些文件位于共享 NFS 挂载上,因此当另一个主机/进程写入同一区域(它们需要)时,它会混淆后期处理。
我也尝试过,inotify
取得了一些成功(因为在 NFS 挂载上使用时,它不会检测其他主机写入的文件),但不幸的是,为了监视整个目录树,我们需要能够看到正在创建的目录以设置其他监视。
所以我想知道是否有任何程序可以真正捕获/记录应用程序进行的文件系统调用,类似于 tsocks (1) 适用于网络调用。
答案1
现代内核的后继者是inotify
:fanotify
。还有这个实验工具(需要root):
http://manpages.ubuntu.com/manpages/precise/man1/fatrace.1.html
好处:
- 可通过 PID 过滤输出
- 无需设置递归手表。
好文章:http://www.lanedo.com/filesystem-monitoring-linux-kernel/