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