4.2.5. ファイルの読み取りおよび書き込みの監視


このセクションでは、ファイルの読み取りおよび書き込みをリアルタイムで監視する方法を説明します。

例4.17 inodewatch.stp

#! /usr/bin/env stap

probe vfs.write, vfs.read
{
  # dev and ino are defined by vfs.write and vfs.read
  if (dev == MKDEV($1,$2) # major/minor device
      && ino == $3)
    printf ("%s(%d) %s 0x%x/%u\n",
      execname(), pid(), probefunc(), dev, ino)
}
例4.17「inodewatch.stp」 は、ファイルの以下の情報をコマンドラインの引数として取ります。
  • ファイルのメジャーデバイス番号
  • ファイルのマイナーデバイス番号
  • ファイルの inode 番号
この情報を取得するには、stat -c '%D %i' filename を使用します。filename は絶対パスです。
たとえば、/etc/crontab ファイルを監視する場合は、最初に stat -c '%D %i' /etc/crontab を実行します。これにより、次の出力が出力されます。
805 1078319
805 は、ベース 16 (16 進数) のデバイス番号です。最後の 2 桁がマイナーデバイス番号で、その上の数字がメジャー番号です。1078319inode 番号です。/etc/crontab の監視を開始するには、stap inodewatch.stp 0x8 0x05 1078319 を実行します (0x 接頭辞は base-16 値を示します)。
このコマンドの出力には、読み取り/書き込みを実行しているプロセスの名前と ID、実行中の機能 (vfs_read または vfs_write)、デバイス番号 (16 進形式)、および inode 番号が含まれます。例4.18「例4.17「inodewatch.stp」 出力サンプル」 には、stap inodewatch.stp 0x8 0x05 1078319 の出力が含まれます (スクリプトの実行中に cat /etc/crontab が実行された場合)。

例4.18 例4.17「inodewatch.stp」 出力サンプル

cat(16437) vfs_read 0x800005/1078319
cat(16437) vfs_read 0x800005/1078319
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.