:man source: User Commands
:man manual: Logdo Manual

LOGDO(1)
========

NAME
----

logdo - ログファイルの監視と選択的なログ出力のパイプ入力によるコマンド実行


SYNOPSIS
--------

*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'


DESCRIPTION
-----------

logdo(1) コマンドはログファイル 'filename' を監視し、そのログ出力で
正規表現 'regex' にマッチするログ出力をパイプ入力とするコマンド
'script' を 'wait' 秒毎に実行します。

複数の、通常のオプション 'OPTIONS' と引数 'regex' および 'filename'
のセットは並列実行されます。


OPTIONS
-------

-w 'wait'::
  コマンドを実行する周期(秒)を指定します。既定値は1秒です。

-n 'nlines'::
  既に出力された 'nlines' 行のログを処理します。既定値は0行です。

-s 'script'::
  追記されるログをパイプ入力とするコマンドを指定します。例えば、`cat`
  を指定すると、追記されるログが標準出力に表示されます。

-v 'vregex'::
  追記されるログのうち、正規表現 'vregex' にマッチする行を処理しません。


ADDITIONAL OPTIONS
------------------

-C 'config'::
  オプションと引数 'regex', 'filename' のセットを 'config' ファイルに保
  存します。

-q::
  オプション処理中に終了します。オプションと引数によって生成された
  'config' ファイルを実行せずに保存する場合に有用です。

-c 'config'::
  保存された 'config' ファイルから 'wait', 'script', 'vregex',
  'regex', 'filename' の複数のセットを並列実行します。


ARGUMENTS
---------

'regex'::
  追記されるログのうち、正規表現 'regex' にマッチする行のみ処理します。

'filename'::
  ログファイルを指定します。


EXIT STATUS
-----------

正常終了時に 0 を返します。さもなくば、0以外を返します。


EXAMPLES
--------

例えば、+/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
................................................................................


AUTHOR
------

* Taiji Yamada <taiji@aihara.co.jp>


COPYING
-------

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.
