HAYAGUI

FreeBSD 4.8 + syslog 結果をmailする

はじめに

syslog のページで、/etc/syslog.conf に | (パイプ)で他のプログラムに繋げることがわかりましたので、 mail するようにしてみました。
swatchっていうログ監視メール送信 perl スクリプトがあるけれど、 今回は簡単な方法ってことで。

やってみよう

とりあえず、/etc/syslog.conf を開いて以下のように設定します。でも、実運用時に使う場合は、このように多量のメールが想定されるところには実装しないように。
*.notice;kern.debug;lpr.info;mail.crit;news.err | /usr/bin/mail -s err kenz@eden.hayagui.com
syslogd を再起動させます。
mico# kill -HUP `cat /var/run/syslog.pid `
logger でログを発生させる。
mico# logger -p local0.notice "test"
で、メールが来ると思ったらこない。 どうも、パイプが切れないためにずっと mail 送出前になっているみたい。
mico# ps -ax | grep mail
   84  ??  Ss     0:00.25 sendmail: accepting connections (sendmail)
   87  ??  Is     0:00.01 sendmail: Queue runner@00:30:00 for /var/spool/client
  370  ??  Ss     0:00.00 sh -c  /usr/bin/mail -s err kenz@eden.hayagui.com
  371  ??  S      0:00.00 /usr/bin/mail -s err kenz@eden.hayagui.com
「さて、どうすっかな」ということで、出力するコマンドを一通りやってみたら、head がいいみたい。-1 で1行を表示する設定。
*.notice;kern.debug;lpr.info;mail.crit;news.err        | head -1 | /usr/bin/mail -s err kenz@eden.hayagui.com
Charlie Root からメールが届きました。

戻る



(C)1999 - 2003 Kenji Ito All rights reserved.