qmailanalog は qmail が出力するログから統計情報を求めるためのツールです。
インストールは次のとおりです。
$ gzip -dc qmailanalog-0.70.tar.gz | tar xvf -
$ cd qmailanalog-0.70 $ make $ su # make setup check
/^m/ {
sender = $10"/"$8
の次に行に
sub("-return-.*=.*@","@",sender)
を挿入します。また、
/^d/ {
sender = $10"/"$7
の次の行にも
sub("-return-.*=.*@","@",sender)
を挿入します。
*.=info;*.=notice;kern,mail,auth.none /var/log/messages *.=debug;kern,mail,auth.none /var/log/debug *.warn;kern,mail,auth.none /var/log/syslog *.crit /var/log/critical kern.* /var/log/kernel mail.* /var/log/maillog auth.* /var/log/authlog
#!/bin/sh
#
PATH=/usr/local/qmailanalog/bin:/var/qmail/bin
MAILLOG="/var/log/maillog"
QMAILLOG="$HOME/tmp/qmail.$$"
/usr/bin/awk '{$1="";$2="";$3="";$4="";$5="";print}' \
< $MAILLOG | matchup > $QMAILLOG
(echo "To: postmaster@foo.or.jp" echo "From: postmaster@foo.or.jp" echo "Subject: maillog" echo "" zoverall < $QMAILLOG zfailures < $QMAILLOG zdeferrals < $QMAILLOG zrecipients < $QMAILLOG zsenders < $QMAILLOG )| qmail-inject -f postmaster@foo.or.jp /bin/rm -f $QMAILLOG
splogger は syslogd を経由してログを出力するため、syslogd の性能上、すべてのログを確実に残せる保証はありません。そこで、DJB 氏による daemontools というパッケージに含まれる multilog を用いた例を示します。
#!/bin/sh # PATH="/usr/local/qmailanalog/bin:/var/qmail/bin:$PATH" export PATH QMAILLOG="/service/qmail/log/qmail.$$" /usr/local/bin/logcollector /service/qmail/log 1 | matchup > $QMAILLOG
(echo "To: postmaster@foo.or.jp" echo "From: postmaster@foo.or.jp" echo "Subject: maillog" echo "" zoverall < $QMAILLOG zfailures < $QMAILLOG zdeferrals < $QMAILLOG zrecipients < $QMAILLOG zsenders < $QMAILLOG )| qmail-inject -f postmaster@foo.or.jp /bin/rm -f $QMAILLOG