inotify-tools を使ってファイルシステムへのアクセスをモニタする
かつて Windows では FileMon というユーティリティを使うことでファイルシステムへのアクセス(アクティビティ)をモニタすることが出来ました。しかし、2006 年以降、FileMon は Process Monitor というツールに統合され、ファイルシステム / プロセス / レジストリのアクティビティを横断的にモニタすることができるようになりました。
Linux でも inotify-tools を使うことでファイルシステムのアクティビティをモニタすることができます。今回は inotify-tools を CentOS 5.5 x86_64 へインストールしてみます。
inotify-tools のインストール¶
inotify-tools は DAG リポジトリで配布されています。DAG リポジトリが未設定であれば、/etc/yum.repos.d/dag.repo というファイルを以下の内容で新規作成します。
1 2 3 4 5 6 |
|
DAG リポジトリの設定が完了したら、yum で inotify-tools をインストールします。DAG リポジトリを "enabled=0" で設定しているので、yum install する際に "--enablereop" オプションで DAG リポジトリを明示的に指定します。
1 |
|
これでインストールは完了です。
使い方¶
ファイルシステム上でイベントが発生するのを待って、その結果を表示するには "inotifywait" を使います。inotifywait の代表的なオプションには以下のようなものがあります。
- -m
- 継続的にコマンドを実行し続けます。このオプションを指定しないと、ひとつのイベントを検知しただけで、inotifywait は終了します。
- --format
- 結果の出力フォーマットを指定します。
- -r
- 指定したディレクトリを起点に、再帰的にファイルシステムをモニタします。
- --timefmt
- 日時の出力を strftime(3) と同じフォーマットで指定できます。このオプションを指定するには、--format オプションで "%T" が指定されている必要があります。
実行例¶
/var 配下を再帰的にモニタする場合の実行例は以下のようになります。
1 |
|
実行結果は以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|