如何才能找出哪些程序在一段时间内修改了文件?

如何才能找出哪些程序在一段时间内修改了文件?

我想更好地了解哪些程序在重启期间修改了特定文件1。我可以设置一些东西来记录此类信息吗?

轮询哪些进程现在打开文件将不起作用,因为文件可能只打开几毫秒。

可以使用内核跟踪来收集这些信息吗?


1 /var/lib/alsa/asound.state如果你好奇的话,但我对通用解决方案感兴趣。

答案1

这可以通过该工具实现fuser。它列出了访问特定文件的所有进程的进程 ID。尝试,

fuser -u .

...查看主目录中哪些文件处于“打开”状态、涉及的进程 ID 以及拥有这些进程的用户名。

就你的情况而言,我不确定这是否有用,因为你正在尝试监控重启。我怀疑 rc.local 在重启过程中执行得太晚,无法捕获任何有用的信息,比如

watch -n 0.5 "fuser -u /var/lib/alsa/asound.state"

嗯 - 我刚刚尝试将其转储到文件中,但输出效果不太好。但如果可以解决这个问题,那么也许可以使用 cron 来实现某些功能?

相关内容