nanog mailing list archives

Re: Email Complexes


From: "james edwards" <hackerwacker () cybermesa com>
Date: Tue, 14 Sep 2004 15:22:26 -0600


Why can't you already tell if you aren't getting through to
major providers? Wouldn't your queues backup, or are you being
blocked and the messages are being rejected and you are trying
to track that?

It is all in the mail logs. Here is a quick hack to take a peak at your mail
queue (for sendmail)
& it should not be hard to get provider names that are backed up in your
queue:

#!/bin/sh
# Do the Mqueues
ls -d /var/spool/mqueue* | while read queue_name
do
        total=`(cd $queue_name ; find . -name 'q*' -print | wc -l )`
        deferred=`(cd $queue_name ; find . -name 'q*' -exec grep MDeferred
"{}" ";" | wc -l )`
        deferred=`echo "$deferred 2 / p " | dc`
        deferred_400=`(cd $queue_name ; find . -name 'q*' -exec egrep -e
'MDeferred: 4[0-9][0-9]' "{}" ";" | wc -l )`
        deferred_400=`echo "$deferred_400 2 / p " | dc`

        deferred_refused=`(cd $queue_name ; find . -name 'q*' -exec egrep -e
'MDeferred: Connection refused' "{}" ";" | wc -l )`
        deferred_refused=`echo "$deferred_refused 2 / p " | dc`

        deferred_reset=`(cd $queue_name ; find . -name 'q*' -exec egrep -e
'MDeferred: Connection reset' "{}" ";" | wc -l )`
        deferred_reset=`echo "$deferred_reset 2 / p " | dc`

        deferred_timeout=`(cd $queue_name ; find . -name 'q*' -exec egrep -e
'MDeferred: Connection timed out' "{}" ";"  | wc -l )`
        deferred_timeout=`echo "$deferred_timeout 2 / p " | dc`

        echo
"===========================================================================
"
        echo "Stats for: $queue_name"
        echo "Total messages in queue   : $total"
        echo "Total messages in deferred: $deferred"
        echo "Total messages 400 error: $deferred_400"
        echo "Total messages conn. refused: $deferred_refused"
        echo "Total messages conn. reset: $deferred_reset"
        echo "Total messages conn. timeout: $deferred_timeout"
        echo "Total messages deferred other: `echo "$deferred_400
$deferred_refused $deferred_reset $deferred_timeout $total - - - - p" | dc`"
        echo
"===========================================================================
"
done


Current thread: