22.2. execsnoop を使用したシステムプロセスの調査
BCC スイートの execsnoop
ツールは、新しいプロセス実行イベントをリアルタイムで取得して表示します。これは、システム上で実行されているコマンドやバイナリーを監視し、デバッグ、監査、セキュリティー監視を行うのに役立ちます。
手順
1 つのターミナルで
execsnoop
プログラムを実行します。/usr/share/bcc/tools/execsnoop
# /usr/share/bcc/tools/execsnoop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ls
コマンドの短期的なプロセスを作成するために、別のターミナルで次のように入力します。ls /usr/share/bcc/tools/doc/
$ ls /usr/share/bcc/tools/doc/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow execsnoop
を実行している端末に、次のような出力が表示されます。PCOMM PID PPID RET ARGS ls 8382 8287 0 /usr/bin/ls --color=auto /usr/share/bcc/tools/doc/
PCOMM PID PPID RET ARGS ls 8382 8287 0 /usr/bin/ls --color=auto /usr/share/bcc/tools/doc/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow execsnoop
プログラムは、システムリソースを消費する新しいプロセスごとに 1 つの行を出力します。また、ls
などの非常に短期間に実行されるプログラムのプロセスを検出します。なお、ほとんどの監視ツールはそれらを登録しません。execsnoop
出力には以下のフィールドが表示されます。- PCOMM
-
親プロセス名。(
ls
) - PID
- プロセス ID。(8382)
- PPID
- 親プロセス ID。(8287)
- RET
- 新しいプロセスにプログラムコードをロードする exec() システムコールの戻り値 (0)。
- ARGS
引数を使用して起動したプログラムの場所。
詳細は、システム上の
/usr/share/bcc/tools/doc/execsnoop_example.txt
ファイルとexec(3)
man ページを参照してください。