有没有办法知道通过运行应用程序正在创建、读取或更新哪些文件?

有没有办法知道通过运行应用程序正在创建、读取或更新哪些文件?

我想列出从运行的应用程序中读取、创建或更新的所有文件。

答案1

答案就在里面监控程序的 I/O在许多 Unix 上可用opensnoop(不仅仅是 Solaris)。

答案2

我不知道有任何应用程序或工具可以在一个地方为您提供有关流程所需的所有信息。但是,如果您了解Linux一些事情,就会变得值得。首先,一切都是一个file。这很棒,因为您可以简单地 cat 文件来获取信息。第二个是您需要的有关流程的所有信息都在/proc.如果您有PID一个父进程,那么您可以从那里找到您喜欢的有关该进程的任何内容。我会建议man proc

答案3

获取您的进程 ID(firefox例如,第二个grep是隐藏grep搜索本身):

ps aux | grep firefox | grep -v grep

你会得到类似的东西:

<login>  <pid> .... /path/to/program

然后你可以file运行/proc/pid/fd/*

file /proc/1809/fd/*

你会得到类似的东西:

....
/proc/1809/fd/94:  symbolic link to `/home/pp/.mozilla/firefox/79bmloy7.default/formhistory.sqlite' 
/proc/1809/fd/96:  symbolic link to `/home/pp/.mozilla/firefox/79bmloy7.default/signons.sqlite' 
....

相关内容