Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids. Most
[dragonfly.git] / etc / periodic / daily / 460.status-mail-rejects
1 #!/bin/sh
2 #
3 # $FreeBSD: src/etc/periodic/daily/460.status-mail-rejects,v 1.8.2.5 2002/05/13 21:36:44 brian Exp $
4 # $DragonFly: src/etc/periodic/daily/460.status-mail-rejects,v 1.2 2003/06/17 04:24:48 dillon Exp $
5 #
6
7 # If there is a global system configuration file, suck it in.
8 #
9 if [ -r /etc/defaults/periodic.conf ]
10 then
11     . /etc/defaults/periodic.conf
12     source_periodic_confs
13 fi
14
15 case "$daily_status_mail_rejects_enable" in
16     [Yy][Ee][Ss])
17         if [ ! -d /etc/mail ]
18         then
19             echo '$daily_status_mail_rejects_enable is set but /etc/mail' \
20                 "doesn't exist"
21             rc=2
22         elif [ ! -f /var/log/maillog ]
23         then
24             echo '$daily_status_mail_rejects_enable is set but ' \
25                 "/var/log/maillog doesn't exist"
26             rc=2
27         elif [ "$daily_status_mail_rejects_logs" -le 0 ]
28         then
29             echo '$daily_status_mail_rejects_enable is set but ' \
30                 '$daily_status_mail_rejects_logs is not greater than zero'
31             rc=2
32         else
33             echo
34             echo Checking for rejected mail hosts:
35
36             start=`date -v-1d '+%b %d' | sed 's/0\(.\)$/ \1/'`
37             n=$(($daily_status_mail_rejects_logs - 2))
38             rc=$({
39                 while [ $n -ge 0 ]
40                 do
41                     if [ -f /var/log/maillog.$n ]
42                     then
43                         cat /var/log/maillog.$n
44                     elif [ -f /var/log/maillog.$n.gz ]
45                     then
46                         zcat -fc /var/log/maillog.$n.gz
47                     elif [ -f /var/log/maillog.$n.bz2 ]
48                     then
49                         bzcat -fc /var/log/maillog.$n.bz2
50                     fi
51                     n=$(($n - 1))
52                 done
53                 cat /var/log/maillog
54             } |
55                 perl -ne "print \"\$2\n\"
56                     if (/reject=/ and /^$start.*ruleset=check_\S+,\s+arg1=(<[^@]+@)?([^>,]+).*reject=/o);" |
57                 sort -f | uniq -ic | sort -fnr | tee /dev/stderr | wc -l)
58             [ $rc -gt 0 ] && rc=1
59         fi;;
60
61     *)  rc=0;;
62 esac
63
64 exit $rc