On 2/2/2013 at 9:52 AM Sahil Tandon wrote:

|On Wed, 2013-01-30 at 14:23:19 -0500, Mike. wrote:
|
|> I made some changes to the script based upon the excellent feedback
I
|> received here.  
|> 
|> The script no longer wanders beyond the postscreen log records in
|> order to gather the information needed to determine the postscreen
|> rejection rate.  So that removes the problems caused by
|> multiple-recipient messages.   
|> ...
|
|Be careful with grep(1) patterns.  You overstate CONNECTs by including
|'NOQUEUE: reject: CONNECT' in the count.  Meanwhile, the script
|understates total DNSBL rejections, which you measure with:
|
|| grep -c "DNSBL rank [3-99]"
|
|That bracket expression matches on a _single_ character, and does not
|capture double-digit ranks.  A similar mistake occurs in the attempt
to
|aggregate 9+ ranks:
|
|| grep -c "DNSBL rank [9-99] "
|
|This only counts appearances of "DNSBL rank 9" in the log, as
|illustrated below:
|
|| % grep -c "DNSBL rank [9-99] " maillog
|| 4494
|
|| % grep -c "DNSBL rank 9 " maillog
|| 4494
|
|Review the re_format(7) and grep(1) manuals to improve understanding
of
|regular expressions.  In case it helps you, last year I had cobbled
|together a slower (it is Python rather than a set of grep(1)
|expressions) script[1] to collect similar statistics.  No promises
that
|it is error-free.
|
|[1] http://people.freebsd.org/~sahil/scripts/mailstats.py.txt
|
|--
|Sahil Tandon

 =============


Thanks for the feedback.   



Reply via email to