]>
Commit | Line | Data |
---|---|---|
4e491e19 | 1 | #!/bin/sh |
dec49b94 | 2 | # |
585a86c3 | 3 | # Nightly script for backing up Moira. |
dec49b94 | 4 | # |
5 | # | |
4e491e19 | 6 | BKUPDIRDIR=/backup |
3d058c8a | 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 | |
dec49b94 | 10 | chdir ${BKUPDIRDIR} |
11 | ||
12 | if [ -d in_progress ] | |
13 | then | |
14 | echo "Two backups running?" | |
15 | exit 1 | |
16 | fi | |
17 | ||
f3a05e0e | 18 | trap "rm -rf ${BKUPDIRDIR}/in_progress" 0 1 15 |
19 | ||
dec49b94 | 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 | |
8a9c2b77 | 27 | chmod 750 in_progress |
1b084388 | 28 | if /moira/bin/mrbackup ${BKUPDIRDIR}/in_progress/ |
dec49b94 | 29 | then |
4e491e19 | 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 ] | |
a6be540b | 47 | then |
4e491e19 | 48 | echo "Backup was incomplete! $failed table(s) too small!" |
49 | echo "Current file sizes:" | |
50 | ls -s in_progress/ | |
a6be540b | 51 | exit 1 |
52 | fi | |
dec49b94 | 53 | echo "Backup successful" |
54 | else | |
55 | echo "Backup failed!" | |
56 | exit 1 | |
57 | fi | |
58 | ||
31794fc1 | 59 | /moira/bin/report.pl ${BKUPDIRDIR}/in_progress > ${BKUPDIRDIR}/in_progress/report |
1b084388 | 60 | |
dec49b94 | 61 | if [ -d stale ] |
62 | then | |
3d058c8a | 63 | /usr/ucb/echo -n "Stale backup " |
f3a05e0e | 64 | rm -r stale |
dec49b94 | 65 | echo "removed" |
66 | fi | |
3d058c8a | 67 | /usr/ucb/echo -n "Shifting backups " |
dec49b94 | 68 | |
69 | mv backup_3 stale | |
3d058c8a | 70 | /usr/ucb/echo -n "3 " |
dec49b94 | 71 | mv backup_2 backup_3 |
3d058c8a | 72 | /usr/ucb/echo -n "2 " |
dec49b94 | 73 | mv backup_1 backup_2 |
3d058c8a | 74 | /usr/ucb/echo -n "1 " |
dec49b94 | 75 | mv in_progress backup_1 |
38a4403b | 76 | echo |
3d058c8a | 77 | /bin/df -k /moira/moira.log | /usr/ucb/tail -1 |
dec49b94 | 78 | echo |
3d058c8a | 79 | echo "deleting last backup" |
dec49b94 | 80 | rm -rf stale |
4e491e19 | 81 | echo |
82 | echo "Shipping over the net" | |
83 | rcp -rpx ${BKUPDIRDIR}/* oregano:/backup | |
a6be540b | 84 | rcp -rpx ${BKUPDIRDIR}/* nessus:/backup/moira |
d323bcdd | 85 | |
1b084388 | 86 | if [ "`/usr/bin/find /moira/critical.log -mtime -1 -print`" = "/moira/critical.log" ]; then |
d323bcdd | 87 | (/bin/echo "To: dbadmin";\ |
88 | /bin/echo "Subject: Moira update status";\ | |
1b084388 | 89 | /usr/ucb/tail /moira/critical.log) | /bin/mail dbadmin |
d323bcdd | 90 | fi |
91 | ||
4e491e19 | 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 | ||
dec49b94 | 97 | exit 0 |