相当于SysInternals FileMon for Linux?


Answers:



8

这取决于您想要什么:

  • 大体上,您希望查看inotify来查看任何进程进行的所有文件访问。

  • 在小型的strace中,您可以观看特定进程进行的系统调用。Strace非常棒。例如,您可以通过执行来跟踪流程对“打开”的调用strace -f -eopen $cmd。该手册页对语法的全部细节,当然。


谢谢pjz。具体来说-在Ubuntu上使用Ogre3d遇到一些麻烦。我的测试应用程序似乎在启动过程中正在寻找一些.cfg文件。我想听听所有尝试打开文件的尝试,以便确保可以使用正确的文件并具有正确的权限。
chickeninabiscuit

strace -e open ./app
贾斯汀

2

strace在启动应用程序之前,最好先观察应用程序在做什么。
lsof很高兴看到一个已经运行的应用程序正在使用哪些文件。

BTW:
lsof -ni:22显示哪个进程正在使用端口22。



1

这是使用strace跟踪文件更改的示例:

strace -f -e trace=file -p7546 -o /tmp/outputfile

-f确保捕获来自子进程的事件。
-e trace=file说我们应该捕获文件相关的系统调用(例如statopenfutex等)
-p的进程ID(从中检索ps -aux或其他方式) -o指定的OUTPUTFILE(有可能是大量的数据,你可以改为使用grep作为过滤器。




0

这是旧的,但我认为将其更新为今天的现实是一个好主意。

对于仅调试一个进程及其子进程,strace仍然是最佳方法。它可以轻松显示所有文件访问,即使丢失的文件也是如此。

对于常规系统调试,内核中的审核功能可以做到这一点,这是推荐的方法。它不需要最新内核上的任何补丁,只需安装审计包

这是使用它的简单GUI:

审计规程

这将复制Windows filemon,监视所有位置,进程等的文件访问权限

也检查这个帖子


0

这对我来说很有效(Linux Mint 19.1):

sudo lsof 2>&1 | grep programnamehere

不知道为什么2>&1需要它,但是除非我使用它,否则它不会过滤。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.