]> andersk Git - moira.git/blame - backup/nightly.sh
Command line printer manipulation client, and build goo.
[moira.git] / backup / nightly.sh
CommitLineData
4e491e19 1#!/bin/sh
dec49b94 2#
585a86c3 3# Nightly script for backing up Moira.
dec49b94 4#
5#
4e491e19 6BKUPDIRDIR=/backup
3d058c8a 7PATH=/usr/athena/bin:/bin:/usr/bin:/usr/ucb; export PATH
8ORACLE_HOME=/usr/oracle; export ORACLE_HOME
9ORACLE_SID=moira; export ORACLE_SID
dec49b94 10chdir ${BKUPDIRDIR}
11
12if [ -d in_progress ]
13then
14 echo "Two backups running?"
15 exit 1
16fi
17
f3a05e0e 18trap "rm -rf ${BKUPDIRDIR}/in_progress" 0 1 15
19
dec49b94 20if mkdir in_progress
21then
22 echo "Backup in progress."
23else
24 echo "Cannot create backup directory"
25 exit 1
26fi
8a9c2b77 27chmod 750 in_progress
1b084388 28if /moira/bin/mrbackup ${BKUPDIRDIR}/in_progress/
dec49b94 29then
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"
54else
55 echo "Backup failed!"
56 exit 1
57fi
58
31794fc1 59/moira/bin/report.pl ${BKUPDIRDIR}/in_progress > ${BKUPDIRDIR}/in_progress/report
1b084388 60
dec49b94 61if [ -d stale ]
62then
3d058c8a 63 /usr/ucb/echo -n "Stale backup "
f3a05e0e 64 rm -r stale
dec49b94 65 echo "removed"
66fi
3d058c8a 67/usr/ucb/echo -n "Shifting backups "
dec49b94 68
69mv backup_3 stale
3d058c8a 70/usr/ucb/echo -n "3 "
dec49b94 71mv backup_2 backup_3
3d058c8a 72/usr/ucb/echo -n "2 "
dec49b94 73mv backup_1 backup_2
3d058c8a 74/usr/ucb/echo -n "1 "
dec49b94 75mv in_progress backup_1
38a4403b 76echo
3d058c8a 77/bin/df -k /moira/moira.log | /usr/ucb/tail -1
dec49b94 78echo
3d058c8a 79echo "deleting last backup"
dec49b94 80rm -rf stale
4e491e19 81echo
82echo "Shipping over the net"
83rcp -rpx ${BKUPDIRDIR}/* oregano:/backup
a6be540b 84rcp -rpx ${BKUPDIRDIR}/* nessus:/backup/moira
d323bcdd 85
1b084388 86if [ "`/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 90fi
91
4e491e19 92plfile=/afs/athena.mit.edu/system/info/public-mailing-lists
93awk -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 97exit 0
This page took 0.320395 seconds and 5 git commands to generate.