• Emacs と Perl を使って,XML-RPC 経由で Movable Type のエントリを編集するツールを配布しています.良かったら持っていってください.( 2004/10/24 update) mapae logo
  • Movable Type で footnote*1 を生成する plugin を配布しています.良かったら持っていってください.( 2004/03/04 update )
  • その他の配布物等

*1: 脚注.よ〜するに,こ〜ゆ〜やつです.

logmailer

| コメント(0) | トラックバック(0)

いくつかバッチプログラムを書いたりしているのですが、毎度毎度エラーメールを送信したり、ログを残したりする部分を書くのが面倒くさいし、なんか本質的じゃないなと思い始めました。というわけで、この辺のことをやってくれる別のプログラムを書いてみようと思ったわけで。

  • やりたかったこと
    • 標準出力や標準エラー出力をメールで送ったり、ファイルに落としたりする。
    • メールの Subject は自由に設定できる。
      • crontab 標準のメールだと...
    • 出力が無い場合は、メールを送らない。
    • smtp を話せる。
      • smtpd を立てられない環境もあったりするので。
  • やらなくてもよいこと
    • 終了ステータスによる動作の変更
  • 実装方針
    • メール送信部分は、Mail::Mailerで。
    • メール送信を行う子プロセスを立ち上げてパイプをつないでから、希望のコマンドを exec する。
  • 書いている間に思いついたこと
    • >/dev/null 相当のことができるようにする。
    • | tee batch.log 相当のことができるようにする。
    • 2>&1 相当のことができるようにする。
    • 3番以降のファイルディスクリプタも必要に応じて使える。
    • 入力の各行にタイムスタンプをつける。

で、できあがったのがこれ。

$ logmailer --type=smtp --mailer=Server=localhost --ts \
  --subject='BatchResult: $(date +%F)" \
  --subject-prefix='2:**ALERT**' \
  --tee=3 --type=3:nomail --file=3:backup.log --nots=3 \
  "echo hoge; echo fuga>&2"

のようにして使う。

詳しい使い方は、help 参照のこと。

$ logmailer --help

トラックバック(0)

トラックバックURL: http://d.nym.jp/mt/trackback/2108

コメントする

最近のコメント

アーカイブ

Author

nym <n...@nym.jp>
Powered by Movable Type 5.161-ja