View | Details | Raw Unified | Return to bug 35018 | Differences between
and this patch

Collapse All | Expand All

(-)460.status-mail-rejects (-16 / +25 lines)
Lines 33-55 Link Here
33
	    echo Checking for rejected mail hosts:
33
	    echo Checking for rejected mail hosts:
34
34
35
	    start=`date -v-1d '+%b %d' | sed 's/0\(.\)$/ \1/'`
36
	    n=$(($daily_status_mail_rejects_logs - 2))
37
	    rc=$({
35
	    rc=$({
38
		while [ $n -ge 0 ]
36
		for f in `find /var/log -name maillog\* \
37
			\( -mtime 1 -o -mtime 2 \) | xargs ls -tr`
39
		do
38
		do
40
		    if [ -f /var/log/maillog.$n ]
39
			case $f in
41
		    then
40
				*.gz)	zcat -fc $f;;
42
			cat /var/log/maillog.$n
41
				*.bz2)	bzip2 -cd $f;;
43
		    elif [ -f /var/log/maillog.$n.gz ]
42
				*)	cat $f;;
44
		    then
43
			esac
45
			zcat -fc /var/log/maillog.$n.gz
46
		    fi
47
		    n=$(($n - 1))
48
		done
44
		done
49
		cat /var/log/maillog
45
	    } | awk '
50
	    } |
46
		BEGIN {
51
		perl -ne "print \"\$2\n\"
47
		    today=systime();
52
		    if (/reject=/ and /^$start.*ruleset=check_\S+,\s+arg1=(<[^@]+@)?([^>,]+).*reject=/o);" |
48
		    yesterday=strftime("%b %d", today-86400);
53
		sort -f | uniq -ic | sort -fnr | tee /dev/stderr | wc -l)
49
		    today=strftime("%b %d", today);
50
		}
51
		{
52
		    relay=gensub("^" yesterday ".*, relay=([^,]+), reject=.*",
53
				"\\1", 1);
54
		    if (relay != $0)
55
			rejects[relay]++;
56
		    else if (match($0, "^" today))
57
			exit;
58
		}
59
		END {
60
		    for (relay in rejects)
61
			printf("%4d %s\n", rejects[relay], relay);
62
		}' | sort -fnr | tee /dev/stderr | wc -l)
54
	    [ $rc -gt 0 ] && rc=1
63
	    [ $rc -gt 0 ] && rc=1
55
	fi;;
64
	fi;;

Return to bug 35018