diff options
Diffstat (limited to 'etc')
| -rw-r--r-- | etc/defaults/periodic.conf | 1 | ||||
| -rwxr-xr-x | etc/periodic/daily/460.status-mail-rejects | 13 |
2 files changed, 12 insertions, 2 deletions
diff --git a/etc/defaults/periodic.conf b/etc/defaults/periodic.conf index 81aecbc8af53..3d04a7fc85d0 100644 --- a/etc/defaults/periodic.conf +++ b/etc/defaults/periodic.conf @@ -104,6 +104,7 @@ daily_status_security_nomfs="NO" # Don't check mfs mounts # 460.status-mail-rejects daily_status_mail_rejects_enable="YES" # Check mail rejects +daily_status_mail_rejects_logs=3 # How many logs to check # 999.local daily_local="/etc/daily.local" # Local scripts diff --git a/etc/periodic/daily/460.status-mail-rejects b/etc/periodic/daily/460.status-mail-rejects index 43bdf7dad7aa..cfe42131e476 100755 --- a/etc/periodic/daily/460.status-mail-rejects +++ b/etc/periodic/daily/460.status-mail-rejects @@ -13,13 +13,22 @@ fi case "$daily_status_mail_rejects_enable" in [Yy][Ee][Ss]) - if [ -d /etc/mail -a -f /var/log/maillog ] + if [ -d /etc/mail -a -f /var/log/maillog -a \ + "$daily_status_mail_rejects_logs" -gt 0 ] then echo echo Checking for rejected mail hosts: start=`date -v-1d '+%b %d' | sed 's/0\(.\)$/ \1/'` - zcat -fc /var/log/maillog.0* /var/log/maillog | + n=$(($daily_status_mail_rejects_logs - 2)) + { + while [ $n -ge 0 ] + do + [ -f /var/log/maillog.$n* ] && zcat -fc /var/log/maillog.$n* + n=$(($n - 1)) + done + cat /var/log/maillog + } | perl -ne "print \"\$2\n\" if (/reject=/ and /^$start.*ruleset=check_\S+,\s+arg1=(<[^@]+@)?([^>,]+).*reject=/o);" | sort | uniq -c | sort -nr |
