跟踪某个文件的打开情况

跟踪某个文件的打开情况

我知道如何 strace 某个程序来查看它读取的所有文件。我知道如何查看哪些进程目前正在使用某个文件。

但是有没有办法记录所有打开的文件?我想要类似这样的东西,每次打开某个文件时都会打印出信息tail -f some/log/filelsof -f /file/someone/might/open/soon

谢谢

答案1

这可以通过审计系统来完成。你没有指定你的操作系统,我猜是 Linux。检查http://linux.die.net/man/8/auditd以及See also底部的页面。

答案2

您可以使用 inotify 在文件被访问时运行 lsof。例如,在 incrontab 中:

/etc/passwd IN_ACCESS /tmp/lsof.sh $@

Incrontab 似乎不使用 shell,因此无法使用重定向。可以使用包装器代替:

lsof -f -- $1 >> /tmp/lsof.log

相关内容