]> andersk Git - moira.git/blob - backup/nightly.sh
Command line printer manipulation client, and build goo.
[moira.git] / backup / nightly.sh
1 #!/bin/sh
2 #
3 #       Nightly script for backing up Moira.
4 #
5 #
6 BKUPDIRDIR=/backup
7 PATH=/usr/athena/bin:/bin:/usr/bin:/usr/ucb; export PATH
8 ORACLE_HOME=/usr/oracle; export ORACLE_HOME
9 ORACLE_SID=moira; export ORACLE_SID
10 chdir ${BKUPDIRDIR}
11
12 if [ -d in_progress ] 
13 then
14         echo "Two backups running?"
15         exit 1
16 fi
17
18 trap "rm -rf ${BKUPDIRDIR}/in_progress" 0 1 15 
19
20 if mkdir in_progress 
21 then
22         echo "Backup in progress."
23 else
24         echo "Cannot create backup directory"
25         exit 1
26 fi
27 chmod 750 in_progress
28 if /moira/bin/mrbackup ${BKUPDIRDIR}/in_progress/
29 then
30         failed=`ls -s ${BKUPDIRDIR}/in_progress/ \
31                 | awk ' !/total/ { 
32                           if ( FILENAME ~ /conf$/ ) {
33                             minsize[$2]=$1;
34                           } else {
35                             size[$2]=$1
36                           }
37                         } 
38                         END {
39                           for ( i in minsize ) {
40                             if ( minsize[i] > size[i] ) {
41                               j+=1
42                             }
43                           }
44                           print j
45                         }' ${BKUPDIRDIR}/conf -`
46         if [ "$failed" -gt 0 ]
47         then
48                 echo "Backup was incomplete!  $failed table(s) too small!"
49                 echo "Current file sizes:"
50                 ls -s in_progress/
51                 exit 1
52         fi
53         echo "Backup successful"
54 else
55         echo "Backup failed!"
56         exit 1
57 fi
58
59 /moira/bin/report.pl ${BKUPDIRDIR}/in_progress > ${BKUPDIRDIR}/in_progress/report
60
61 if [ -d stale ]
62 then
63         /usr/ucb/echo -n "Stale backup "
64         rm -r stale
65         echo "removed"
66 fi
67 /usr/ucb/echo -n "Shifting backups "
68
69 mv backup_3 stale
70 /usr/ucb/echo -n "3 "
71 mv backup_2 backup_3
72 /usr/ucb/echo -n "2 "
73 mv backup_1 backup_2
74 /usr/ucb/echo -n "1 "
75 mv in_progress backup_1
76 echo
77 /bin/df -k /moira/moira.log | /usr/ucb/tail -1
78 echo 
79 echo "deleting last backup"
80 rm -rf stale
81 echo
82 echo "Shipping over the net"
83 rcp -rpx ${BKUPDIRDIR}/* oregano:/backup
84 rcp -rpx ${BKUPDIRDIR}/* nessus:/backup/moira
85
86 if [ "`/usr/bin/find /moira/critical.log -mtime -1 -print`" = "/moira/critical.log" ]; then
87         (/bin/echo "To: dbadmin";\
88          /bin/echo "Subject: Moira update status";\
89          /usr/ucb/tail /moira/critical.log) | /bin/mail dbadmin
90 fi
91
92 plfile=/afs/athena.mit.edu/system/info/public-mailing-lists
93 awk -F\| '$3==1 && $4==1 && $5==0 && $6==1 {printf "%-20s %s\n", $1, $9}' \
94         ${BKUPDIRDIR}/backup_1/list \
95         | sort > $plfile.new && mv -f $plfile.new $plfile
96
97 exit 0
This page took 0.040809 seconds and 5 git commands to generate.