ヘプタゴンの技術ブログ

サーバ/ネットワーク/linux/AWSとか青森を拠点でやってます

Inotifywaitでファイル/ディレクトリの変更を検知する

特定のファイルやディレクトリ内のファイルに追加、変更、削除等があった際に
通知出来るコマンドです。

CentOSの場合はepelからインストール出来ます。
ubuntuならaptitudeで普通に入ります。

yum --enablerepo=epel -y install inotify-tools

引数に監視したいファイル名を指定するだけです。

inotifywait /var/log/nginx/access.log

Setting up watches.
Watches established.
/var/log/nginx/access.log MODIFY

1回検知すると終了します。
オプションmを付けると終了せずに常駐します。

inotifywait -m /var/log/nginx/

Setting up watches.
Watches established.
/var/log/nginx/ MODIFY access.log
/var/log/nginx/ MODIFY access.log
/var/log/nginx/ MODIFY access.log
/var/log/nginx/ MODIFY access.log

 

オプションdでディレクトリを再帰的に監視出来ます。

inotifywait -mr /var/log/nginx/
Setting up watches. Beware: since -r was given, this may take a while!
Watches established.
/var/log/nginx/ MODIFY access.log
/var/log/nginx/ MODIFY access.log
/var/log/nginx/ MODIFY access.log
/var/log/nginx/ MODIFY access.log
/var/log/nginx/ MODIFY access.log

ファイルの変更をロギングしたり、
修正をトリガーに他のプログラムを動かすとか出来そうです。