web-dev-qa-db-ja.com

LinuxのSysInternals FileMonに相当しますか?

私はUbuntuでアプリケーションをデバッグしようとしています 存在しないファイルについても)ファイルを開く試行をリッスンする必要があります。

---(Process Monitor (以前は FileMon と呼ばれていました)はWindowsで使用できます-Ubuntuのユーティリティベルトには何がありますか?

ありがとう!

アシュリー

13

Straceを探しています。ここを見てください: https://wiki.ubuntu.com/Strace

7
Evan Anderson

それはあなたが望むものに依存します:

  • 一般的には、 inotify を見て、プロセスが行うすべてのファイルアクセスを確認します。

  • 小規模では、straceを使用すると、特定のプロセスが行うsyscallを監視できます。 Straceはかなり素晴らしいです。たとえば、strace -f -eopen $cmdを実行することで、プロセスの「open」への呼び出しを追跡できます。 man page には、もちろん、構文の詳細があります。

8
pjz

開始アプリケーションの前のstraceは、アプリケーションの動作を監視するのに適しています。
lsofは、すでに実行中のアプリが使用しているファイルを確認できてうれしいです。

BTW:
lsof -ni:22は、ポート22を使用しているプロセスを示します。

2
ThorstenS

SGIには、試してみたいツールがあります。 http://oss.sgi.com/projects/fam/

2
user10103

sysdig を試してください。例えば:

sysdig -A -c echo_fds

1
Singlet

次に、straceを使用してファイルの変更を追跡する例を示します。

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

-fは、子プロセスからのイベントが確実にキャプチャされるようにします。
-e trace=fileは、ファイル関連のシステムコールをキャプチャする必要があると述べています(例:statopenfutexなど)
-pはプロセスIDです(ps -auxまたは他の手段から取得)-oは出力ファイルを指定しました(データが大量にあり、代わりにgrepフィルタ。

1
waitinforatrain

これは私にとってはうまくいきました(Linux Mint 19.1):

Sudo lsof 2>&1 | grep programnamehere

理由がわからない2>&1が必要でしたが、使用しない限りフィルターされませんでした。

0
Andrew

これにはモルタデロの助けが必要です。 http://gitorious.org/mortadelo

0
syockit

これは古いですが、今日の現実に合わせて更新することをお勧めします。

1つのプロセスとその子だけをデバッグする場合は、straceが最善の方法です。欠落しているファイルであっても、すべてのファイルアクセスを簡単に表示できます。

一般的なシステムデバッグでは、カーネルの監査機能がそれを実行でき、推奨される方法です。最近のカーネルにはパッチは必要ありません。インストールされている監査パッケージのみです。

これは、それを使用するための簡単なGUIです。

audit-gui

これは、Windows filemonを複製し、すべての場所、プロセスなどのファイルアクセスを監視します。

この投稿 も確認してください

0
higuita