Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
194 lines (106 sloc) 5.45 KB

NAME

logmailer - コマンドの出力をメール送信する

USAGE

$ logmailer OPTIONS COMMAND [ARGS...]

DESCRIPTION

logmailer は、出力ハンドラプロセスを複数立ち上げ、指定されたファイルディ スクリプタを接続した後、COMMAND を exec する。

デフォルトでは、標準出力、標準エラー出力をハンドルするが、3番以降の任意 のファイルディスクリプタもハンドル可能である。

なお、出力が何も無い場合は、メールは送信されない。このため、動作ログは 標準出力、エラーはエラー出力に対して出力するコマンドであれば、エラー発 生時にのみ特別の Subject を持ったエラーメールを送信することができる。

OPTIONS

--help

このヘルプを表示する。

--version

バージョンを表示する。

--dump

設定を表示する。

以下のオプションは、定義された順に処理される。

なお、VALUE が "ファイルディスクリプタ:" で始まる場合は数字で示され たファイルディスクリプタの設定、そうでない場合は、デフォルト設定として 扱われる。ファイルディスクリプタは、カンマ区切りで複数指定可能である。

また、FD も、カンマ区切りにより複数指定可能である。

デフォルト設定は、すべてのオプションを読み込んだ後に、定義済みの各ファ イルディスクリプタ設定にマージされる。各ファイルディスクリプタの設定と デフォルト設定が競合した場合は、各ファイルディスクリプタの設定が優先さ れる。

--config=YAML_FILENAME

これまでの設定を削除し、YAML_FILENAME の内容で上書きする。

構文は、コマンドライン引数で任意の設定を行い、--dump オプションを付加し て呼び出した場合の出力を参照のこと。

以下のオプションは、定義された順に処理される。

--type=VALUE

メールの送信方法を指定する。VALUE は以下の何れかの値をとる。

  • Mail::Mailer コンストラクタの第1引数

  • "redirect"

    メールを送信せず、--redirect オプションで設定されたファイルディスクリプ タにリダイレクトする。

  • "nomail"

    メールを送信しない。

--redirect=VALUE

ファイルディスクリプタ VALUE にリダイレクトする。

メールは送信されず、オプション --tee, --file の指定は無視される。

また、自身のファイルディスクリプタへのリダイレクト設定は無視される。

--tee=FD

ファイルディスクリプタ FD にもコピーする。

また、自身のファイルディスクリプタへのコピー設定は無視される。

--file=VALUE

ファイル名 VALUE にも追記保存する。

--timestamp[=VALUE], --ts[=VALUE]

入力された各行に、strftime でフォーマットされた VALUE を付加する。

VALUE が省略された場合は、'%F %T - ' が指定されたものとする。

--notimestamp=FD, --nots=FD

ファイルディスクリプタ FD の --timestamp 設定を無効にする。

--header=KEY=VALUE

メールヘッダ KEYVALUE に設定する。

--mailer=KEY=VALUE

Mail::Mailer コンストラクタの第2引数以降に渡す値を設定する。

--subject=VALUE

--header=subject=VALUE のエイリアス。

--subject-prefix=VALUE

--header=subject-prefix=VALUE のエイリアス。

--subject-suffix=VALUE

--header=subject-suffix=VALUE のエイリアス。

--to=VALUE

--header=to=VALUE のエイリアス。

EXAMPLES

以下の例は、標準出力と標準エラー出力を各行にタイムスタンプを付加してメー ルサーバ localhost からメール送信する。標準エラー出力メールの Subject は、先頭に"**ALERT**" を付加する。また、標準出力と標準エラー出力をファ イル "backup.log" に出力する。

$ logmailer --type=smtp --mailer=Server=localhost --ts \
  --subject=BackupResult --subject-prefix='2:**ALERT**' \
  --tee=3 --type=3:nomail --file=3:backup.log --nots=3 \
  SOME_BACKUP_COMMAND

TIPS

設定方法が複雑なため、以下の順で確認するとよいかもしれない。 このとき、COMMAND は、"echo foo; echo bar >&2" などとするとよい。

1. --dump オプションを指定し、エラーが無いことを確認する。
2. --type=testfile オプションを指定し、出力された mailer.testfile の内容が正しいことを確認する

KNOWN ISSUES

設定の事前チェックが完全ではない。

本運用する前に、期待する動作が行われることを確認する必要がある。

AUTHOR

YAMAMOTO, N. <nym at nym.jp>

LICENSE AND COPYRIGHT

Copyright (C) 2011 YAMAMOTO, N. <nym at nym.jp>

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.