source: trunk/third/moira/gen/mailhub.sh @ 24319

Revision 24319, 1.9 KB checked in by broder, 15 years ago (diff)
New Moira snapshot from SVN.
Line 
1#!/bin/sh
2#
3# $HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/gen/mailhub.sh $ $Id: mailhub.sh 3956 2010-01-05 20:56:56Z zacheiss $
4
5PATH=/sbin:/bin:/usr/sbin:/usr/bin:/etc:/usr/etc:/usr/athena/bin:/usr/local/bin
6export PATH
7
8if [ -d /var/athena ] && [ -w /var/athena ]; then
9    exec >/var/athena/moira_update.log 2>&1
10else
11    exec >/tmp/moira_update.log 2>&1
12fi
13
14# The following exit codes are defined and MUST BE CONSISTENT with
15# error codes the library uses:
16MR_MKCRED=47836474
17MR_MISSINGFILE=47836473
18MR_NOCRED=47836470
19
20root=/usr/local/sendmail
21
22if [ -r $root/etc/aliases.new ]; then
23    chmod 644 $root/etc/aliases.new
24else
25    exit $MR_MISSINGFILE
26fi
27
28if [ ! -r $root/etc/aliases ]; then
29    logger -p mail.error -t mailhub.sh "No current aliases file, aborting."
30    exit $MR_NOCRED
31fi
32
33# Play it safe and be sure we have reasonable data
34olines=`wc -l $root/etc/aliases |  awk '{print $1}'`
35nlines=`wc -l $root/etc/aliases.new | awk '{print $1}'`
36diff=`expr $nlines - $olines`
37thresh=`expr $olines / 10`
38
39# Catch the zero case
40if [ $nlines -eq 0 ]; then
41    logger -p mail.error -t mailhub.sh "Recieved empty aliases file, aborting."
42    exit $MR_MISSINGFILE
43fi
44
45# If its a greater than 10% shift bomb out to be safe
46if [ $diff -gt $thresh ]; then
47    logger -p mail.error -t mailhub.sh "Alias changes threshold exceeded, aborting."
48    exit $MR_NOCRED
49fi
50
51cp /dev/null $root/etc/aliases.new.db
52
53$root/sbin/sendmail -bi -oA$root/etc/aliases.new
54if [ $? != 0 ]; then
55    exit $MR_MKCRED
56fi
57
58sh /etc/init.d/sendmail stop
59
60mv $root/etc/aliases $root/etc/aliases.old
61mv $root/etc/aliases.db $root/etc/aliases.old.db
62mv $root/etc/aliases.new $root/etc/aliases
63mv $root/etc/aliases.new.db $root/etc/aliases.db
64
65sh /etc/init.d/sendmail start
66
67# Make sure the sendmail daemons are indeed running
68ps -ef | grep sendmail | grep -v grep > /dev/null 2>&1
69if [ $? -ne 0 ]; then
70    logger -p mail.error -t mailhub.sh "Sendmail failed to restart."
71    exit $MR_MKCRED
72fi
73
74rm -f $0
75exit 0
Note: See TracBrowser for help on using the repository browser.