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;; |