- http://www.atmarkit.co.jp/flinux/rensai/root04/root04b.html
- http://www.stackasterisk.jp/tech/systemManagement/server01_02.jsp
perlで作成されている。指定したログをリアルタイムで監視して、
- 特定のメッセージを検出
- 外部コマンドの実行
などが出来る。swatch単独で起動するので、cronと無関係。
swatchrc
書式
watchforで検出する文字列を正規表現で書く。ignoreで無視する文字列を指定することも可能。(ignoreを設定する場合はwatchforより上に書く)
watchfor /regex/ action1 action2 ...
特殊変数
$_
マッチした文字列に置き換わる。外部コマンドの引数、メールのsubjectなどに渡すと便利。ただし、コマンドの引数に渡す場合に文字列内に空白が含まれると複数個の引数になるので扱いに注意。ダブルクォーテーションで囲ってしまえば無問題。
watchfor /error/ exec /path/to/program "$_"
主に設定するアクション
echo
ターミナルに検出した文字列を表示
exec command
文字列を検出した際に実行するコマンド
mail [=address1:address2:...][,subject=your_text_here]
検出した際にメール送信
swatchの起動
引数が少しややこしいかも。
swatch \ --pid-file=/var/run/swatch.pid \ --config-file=/path/to/swatchrc \ --tail-file=/path/to/logfile \ --tail-args='--follow=name --retry -n 0' &
option
--pid-file
swatchを常駐したときのpidファイル。pidファイルがいらないなら不要
--config-file
swatchrcの場所
--tail-file
監視するログファイル