SysInternals FileMon for Linux的等价物?

我试图在Ubuntu上debugging应用程序 – 我需要听文件打开尝试(即使对于不存在的文件)。

进程监视器 (以前称为FileMon )在Windows上可用 – Ubuntu的公用程序带上有什么?

谢谢!

阿什利

你正在寻找strace。 看看这里: https : //wiki.ubuntu.com/Strace

这取决于你想要什么:

  • 大部分情况下,您需要查看inotify以查看任何进程所做的所有文件访问。

  • 在小的时候,strace会让你看到一个特定的进程产生的系统调用。 Strace非常棒。 例如,您可以通过执行strace -f -eopen $cmd来跟踪进程的“打开”调用。 当然, 手册页有详细的语法。

在开始的应用程序之前的strace是很好的观看应用程序正在做什么。
lsof很高兴看到哪些文件已经运行的应用程序正在使用。

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

SGI有一个你可能想要尝试的工具: http : //oss.sgi.com/projects/fam/

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

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

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

尝试sysdig 。 例如:

sysdig -A -c echo_fds

这需要Mortadelo的帮助。 http://gitorious.org/mortadelo

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

对于debugging只是一个过程和他们的孩子,strace仍然是最好的方式。 它可以很容易地显示所有的文件访问,即使在丢失的文件。

对于通用系统debugging,内核中的审计function可以做到这一点,并且是推荐的方式。 它不需要在最近的内核上有任何补丁,只是安装了审计包

这是一个简单的使用它的GUI:

审计贵

这复制了Windows文件日志,监视所有地方的文件访问,进程等

也检查这个职位