如何监控打开的文件

psu*_*usi 9 filesystem command-line kernel

是否有工具可以监控哪些进程打开了系统上的哪些文件,以便您可以跟踪哪个进程不断接触特定文件?

lsof 可以确定您是否在进程打开文件时运行它,但如果它是一个短暂的进程,每隔一段时间运行一次,则无法使用 lsof 捕获它。需要使用内核跟踪的东西。

tan*_*eli 7

您也许可以为此使用审计系统。它有点重量级,但应该可以使用(在 /etc/audit/audit.rules 中):

# delete all other rules
-D

# watch the file in question
-w /path/to/file -p rwxa
Run Code Online (Sandbox Code Playgroud)

然后我认为您需要重新启动auditd:

sudo service audit restart
Run Code Online (Sandbox Code Playgroud)

(如果你没有安装它,它在包 auditd 中。)然后可以在 /var/log/audit/audit.log 中找到罪魁祸首。