ちょっとした調査のためにinotifywaitを使ったので、そのメモです。

概要

inotifywait は、Linux の inotify インターフェースを利用してファイルやディレクトリの変更をリアルタイムで監視するコマンドです。これにより、ファイルの作成、削除、変更などのイベントを検知できます。

インストール方法

好みに応じてapt-getを利用します。

sudo aptitude install inotify-tools

基本的な使用例

特定のディレクトリ内でのファイル変更を監視する基本的な例です。

inotifywait -m /path/to/directory

このコマンドは、指定したディレクトリ内のファイル変更を監視し、変更があるたびにそのイベントを表示します。

特定のイベントを監視

特定のイベント(例: ファイルの修正)のみを監視する場合は、-e オプションを使用します。

inotifywait -m -e modify /path/to/directory

出力を tee コマンドでログに追記

監視結果をリアルタイムで表示しつつ、ログファイルに追記するには tee コマンドを使用します。

inotifywait -m /path/to/directory | tee -a /path/to/logfile.log

表示例

以下は、inotifywait コマンド実行時の表示例です。

inotifywait -m -e modify /path/to/directory
Setting up watches.
Watches established.
`/path/to/directory/modified_file.txt` MODIFY

この例では、/path/to/directory 内の modified_file.txt が修正されたことが検知されています。

tee コマンドを使用したログ追記例

監視結果をログファイルに追記する例を示します。以下のコマンドは、/home/mongodb ディレクトリ内での変更を監視し、イベントが発生するたびにその内容を mongodb_changes.log に記録します。

sudo inotifywait -m -e modify,create,delete /home/mongodb/ | tee -a mongodb_changes.log

実行例:

Setting up watches.
Watches established.
`/home/mongodb/` MODIFY index-143--5004584659078615538.wt
`/home/mongodb/` MODIFY WiredTiger.wt
`/home/mongodb/` CREATE WiredTiger.turtle.set
`/home/mongodb/` MODIFY collection-4--5004584659078615538.wt

このコマンドは、変更イベントをリアルタイムで表示するとともに、mongodb_changes.log にも追記します。