Red Hat Training
A Red Hat training course is available for RHEL 8
41.5. SystemTap を使用したファイルの読み取りと書き込みの監視
inodewatch.stp SystemTap スクリプトを使用すると、ファイルの読み取りと書き込みをリアルタイムで監視できます。
前提条件
- SystemTap のインストール の説明に従って、SystemTap をインストールしている。
手順
-
inodewatch.stp
スクリプトを実行します。
# stap --example inodewatch.stp 'argument1' 'argument2' 'argument3'
スクリプト inodewatch.stp
では、コマンドラインの引数を 3 つ使用します。
- ファイルのメジャーデバイス番号。
- ファイルのマイナーデバイス番号。
- ファイルの inode 番号。
この番号は、以下を使用して取得できます。
# stat -c '%D %i' filename
filename は絶対パスです。
以下の例を見てみましょう。
# stat -c '%D %i' /etc/crontab
出力は以下のようになります。
805 1078319
ここでは、以下のようになります。
-
805
は、ベース 16 (16 進数) のデバイス番号です。最後の 2 桁はマイナーデバイス番号で、残りの 2 桁はメジャー番号です。 -
1078319
は、inode 番号です。
/etc/crontab
の監視を開始するには、次のコマンドを実行します。
# stap inodewatch.stp 0x8 0x05 1078319
最初の 2 つの引数では、基数 16 の数に 0x の接頭辞を使用する必要があります。
この出力には、以下が含まれます。
- 読み取りまたは書き込みを実行するプロセスの名前と ID
-
実行中の機能 (
vfs_read
またはvfs_write
) - カーネルデバイス番号
この例の出力は、以下のようになります。
cat(16437) vfs_read 0x800005/1078319 cat(16437) vfs_read 0x800005/1078319