ちょっとした調査のために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
にも追記します。