All:
After playing around with tai64n2tai, matchup, and gawk, I have corrected the "cat" command that creates the $EMAILMSG file, used by the zoverall and other qmailanalog z scripts. Now zoverall works, including valid ddelay and xdelay values.
Bottom line:
Time stats work now for the qmailanalog utilities and no divide by zero errors. qmailstats now produces meaningful time statistics!
This was a bug in the suggested qmailstats script in the QMR procedure. Hopefully this can be corrected in the next version of QMR. Anyone generating nightly email stats reports should replace the first cat command with:
cat /var/log/qmail/qmail-send/* /var/log/qmail/qmail-pop3d/* /var/log/qmail/qmail-smtpd/* | tai64n2tai | awk '{$1=substr($1,1,index($1,".")+6);print}' | matchup > $QMAILSTATS 5>/dev/null
I have attached the corrected qms-analog version of the qmailstats script.
MST
#!/bin/sh # Qmailanalog invocation script PATH=/usr/local/qmailanalog/bin:/var/qmail/bin:/bin:/usr/bin:/usr/local/bin QMAILSTATS="/tmp/q.$$" EMAILMSG="/tmp/qms.$$" umask 077 cat /var/log/qmail/qmail-send/* /var/log/qmail/qmail-pop3d/* /var/log/qmail/qmail-smtpd/* | tai64n2tai | awk '{$1=substr($1,1,index($1,".")+6);print}' | matchup > $QMAILSTATS 5>/dev/null
DATE=`date +'%D'` echo "To: <your_postmaster>@yourdomain.com" > $EMAILMSG echo "From: <your_postmaster>@yourdomain.com" >> $EMAILMSG echo "Subject: Nightly Qmail Stats Report for $DATE" >> $EMAILMSG echo "" >> $EMAILMSG echo "" >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG zoverall < $QMAILSTATS >> $EMAILMSG echo "" >> $EMAILMSG echo "" >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG zfailures < $QMAILSTATS >> $EMAILMSG echo "" >> $EMAILMSG echo "" >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG zdeferrals < $QMAILSTATS >> $EMAILMSG echo "" >> $EMAILMSG echo "" >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~ L a s t 2 4 H o u r s ~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG cat /var/spool/qmailscan/qms-events.log | qms-analog 24 >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A l l R e c o r d s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG cat /var/spool/qmailscan/qms-events.log | qms-analog 0 >> $EMAILMSG cat $EMAILMSG | qmail-inject rm -f $QMAILSTATS rm -f $EMAILMSG