ログ監視して特定の文字がある場合に何かするツール swatch
ログ監視といえばtailコマンドがあるけど、人が張り付く必要があるので自動化したツール『swatch』というのがある。
http://www.atmarkit.co.jp/ait/articles/0211/12/news002_3.html
http://blog.jojo.jp/?eid=1330087
ログ監視は他にもあるみたいだけどとりあえずこれで。頭文字のsは Simple の意っぽい。
よくわからないけどswatchはユーザ空間での使用が想定されているようで、
aptで入れたのに/etc/init.dに初期化スクリプトが作られない。
初期化スクリプトが作られない理由は、tailでの人間張り付きをプログラムで代行しようとしてるだけだからなのかも。
環境
swatch
This is swatch version 3.2.3 Built on May 7, 2008 Built by E. Todd Atkins <Todd.Atkins@StanfordAlumni.ORG>
古いw
設定ファイルかく
ホームディレクトリに.swatchrcを作り、そこに検出パターンとその後のアクションを記述する。
.swatchrc
watchfor /hoge/ exec "echo 'hogeが見つかりました!!!!!'" continue
continueキーワードは、検出後に継続して監視するようにする。
書かないとプロセスは終了する。
動かす
オプションtで監視するファイルを指定する。指定しないと、/var/log/messagesを見てた。
複数ファイルを監視したい時は -t "hoge.log foo.log"みたいな感じで。
screenでもう1つシェルを起動してecho "hoge" >> nemui.logした後の様子。
$ swatch -t nemui.log *** swatch version 3.2.3 (pid:20826) started at Sun Jan 19 14:11:37 JST 2014 /usr/bin/tail: hoge.log: file truncated hogeが見つかりました!!!!!
なんかのエラーとか再起動したとかのメール送信に使うものっぽい。
監視対象はただのテキストでよいのでログ監視以外でもなんか使えるかも。