5 PATH=/sbin:/bin:/usr/sbin:/usr/bin:/etc:/usr/etc:/usr/athena/bin:/usr/local/bin
8 if [ -d /var/athena ] && [ -w /var/athena ]; then
9 exec >/var/athena/moira_update.log 2>&1
11 exec >/tmp/moira_update.log 2>&1
14 # The following exit codes are defined and MUST BE CONSISTENT with
15 # error codes the library uses:
17 MR_MISSINGFILE=47836473
20 root=/usr/local/sendmail
22 if [ -r $root/etc/aliases.new ]; then
23 chmod 644 $root/etc/aliases.new
28 if [ ! -r $root/etc/aliases ]; then
29 logger -p mail.error -t mailhub.sh "No current aliases file, aborting."
33 # Play it safe and be sure we have reasonable data
34 olines=`wc -l $root/etc/aliases | awk '{print $1}'`
35 nlines=`wc -l $root/etc/aliases.new | awk '{print $1}'`
36 diff=`expr $nlines - $olines`
37 thresh=`expr $olines / 10`
40 if [ $nlines -eq 0 ]; then
41 logger -p mail.error -t mailhub.sh "Recieved empty aliases file, aborting."
45 # If its a greater than 10% shift bomb out to be safe
46 if [ $diff -gt $thresh ]; then
47 logger -p mail.error -t mailhub.sh "Alias changes threshold exceeded, aborting."
51 cp /dev/null $root/etc/aliases.new.db
53 $root/sbin/sendmail -bi -oA$root/etc/aliases.new
58 sh /etc/init.d/sendmail stop
60 mv $root/etc/aliases $root/etc/aliases.old
61 mv $root/etc/aliases.db $root/etc/aliases.old.db
62 mv $root/etc/aliases.new $root/etc/aliases
63 mv $root/etc/aliases.new.db $root/etc/aliases.db
65 sh /etc/init.d/sendmail start
67 # Make sure the sendmail daemons are indeed running
68 ps -ef | grep sendmail | grep -v grep > /dev/null 2>&1
70 logger -p mail.error -t mailhub.sh "Sendmail failed to restart."