6 # If there is a global system configuration file, suck it in.
8 if [ -r /etc/defaults/periodic.conf ]
10 . /etc/defaults/periodic.conf
14 case "$daily_status_mail_rejects_shorten" in
15 [Yy][Ee][Ss]) shorten='cut -d" " -f2,3';;
19 case "$daily_status_mail_rejects_enable" in
23 echo '$daily_status_mail_rejects_enable is set but /etc/mail' \
26 elif [ ! -f /var/log/maillog ]
28 echo '$daily_status_mail_rejects_enable is set but ' \
29 "/var/log/maillog doesn't exist"
31 elif [ "$daily_status_mail_rejects_logs" -le 0 ]
33 echo '$daily_status_mail_rejects_enable is set but ' \
34 '$daily_status_mail_rejects_logs is not greater than zero'
38 echo Checking for rejected mail hosts:
40 yesterday=$(date -v-1d '+%b %e')
41 today=$(date '+%b %e')
42 n=$(($daily_status_mail_rejects_logs - 2))
46 if [ -f /var/log/maillog.$n ]
48 cat /var/log/maillog.$n
49 elif [ -f /var/log/maillog.$n.gz ]
51 zcat -fc /var/log/maillog.$n.gz
52 elif [ -f /var/log/maillog.$n.bz2 ]
54 bzcat -fc /var/log/maillog.$n.bz2
59 } | sed -Ene "/^$today/q" -e "/^$yesterday/{"'
60 s/.*ruleset=check_relay,.* relay=([^,]+), reject=([^ ]*).*/\2 check_relay \1/p
62 s/.*ruleset=check_rcpt,.* arg1=<?([^>,]+).* reject=([^ ]+) .* ([^ ]+)/\2 check_rcpt \1 \3/p
64 s/.*ruleset=check_([^,]+),.* arg1=<?([^@]+@)?([^>,]+).* reject=([^ ]+) .* ([^ ]+)/\4 check_\1 \3 \5/p
66 }' | eval $shorten | sort -f | uniq -ic | sort -fnr | tee /dev/stderr | wc -l)