$ logdo -w 1800 -s 'mailx foo@example.com' ' sshd' /var/log/secure.log
logdo - ログファイルの監視と選択的なログ出力のパイプ入力によるコマンド実行
logdo {[-w wait] [-n nlines] [-s script] [-v vregex] regex filename}..
logdo {[-w wait] [-n nlines] [-s script] [-v vregex] regex filename}.. -C config [-q]
logdo [OPTIONS] -c config
logdo(1) コマンドはログファイル filename を監視し、そのログ出力で 正規表現 regex にマッチするログ出力をパイプ入力とするコマンド script を wait 秒毎に実行します。
複数の、通常のオプション OPTIONS と引数 regex および filename のセットは並列実行されます。
コマンドを実行する周期(秒)を指定します。既定値は1秒です。
既に出力された nlines 行のログを処理します。既定値は0行です。
追記されるログをパイプ入力とするコマンドを指定します。例えば、cat を指定すると、追記されるログが標準出力に表示されます。
追記されるログのうち、正規表現 vregex にマッチする行を処理しません。
オプションと引数 regex, filename のセットを config ファイルに保 存します。
オプション処理中に終了します。オプションと引数によって生成された config ファイルを実行せずに保存する場合に有用です。
保存された config ファイルから wait, script, vregex, regex, filename の複数のセットを並列実行します。
追記されるログのうち、正規表現 regex にマッチする行のみ処理します。
ログファイルを指定します。
正常終了時に 0 を返します。さもなくば、0以外を返します。
例えば、/var/log/secure.log の ' sshd' にマッチするログを30分毎に監視したい場合、 以下のように実行すると /var/log/secure.log に追記された、 正規表現 ' sshd' にマッチする行が foo@example.com に 'mailx' コマンドで送られます。
$ logdo -w 1800 -s 'mailx foo@example.com' ' sshd' /var/log/secure.log
加えて、/var/log/git-daemon.log の 'Connection from ' にマッチし、 '(127\.0\.0\.1|192\.168\.)' にマッチしないログを24時間毎に監視したい場合、 以下のように実行すれば同様に foo@example.com に送られます。
$ logdo -w 1800 -s 'mailx foo@example.com' ' sshd' /var/log/secure.log \ -w 86400 -s 'mailx foo@example.com' -v '(127\.0\.0\.1|192\.168\.)' 'Connection from ' /var/log/git-daemon.log
このように、監視するログファイルとその監視方法のセットは、 いくつでも指定できます。しかし、いささか繁雑です。
よって、以下のように '-C logdo.xml -q' を末尾に加えて実行すると、 コマンドラインの設定が logdo.xml に保存され、即座に終了します。
$ logdo -w 1800 -s 'mailx foo@example.com' ' sshd' /var/log/secure.log \ -w 86400 -s 'mailx foo@example.com' -v '(127\.0\.0\.1|192\.168\.)' 'Connection from ' /var/log/git-daemon.log \ -C logdo.xml -q
次からは、以下のように '-c logdo.xml' のみオプションに指定すれば、 以上の設定でログの監視が実行されます。
$ logdo -c logdo.xml
Taiji Yamada <taiji@aihara.co.jp>
Copyright (C) 2009 Taiji Yamada. Free use of this software is granted under the terms of the GNU General Public License version 3 (GPLv3) or (at your option) any later version.