diff --git a/ChangeLog b/ChangeLog index 295613d648b0d8c9ef291f438943505a04d86667..a9ae794d30e8be79fecd3abb5944af627a526c6d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +2006-11-29 Per Cederqvist <ceder@sedesopim.lysator.liu.se> + + Guard against running two fetch-backup-work instances at the same + time, and have the operator confirm any changes it finds. + * fetch-backup-work: Atomically replace the list of backup tasks. + Ask for confirmation before doing so. + + Don't backup snes9x-rediffbackup. + * fetch-backup-work: Don't back up snes9x-rediffbackup, which + seems to be an old backup in itself. + + Back up ftp-pub and medreg. + * fetch-backup-work: Back up and / ftp-pub from hanna, and an + sqldump of medreg from wrath. + * backup-one-task: wrath uses rdiff-backup stored in /usr/bin. + + Added support for the --new option, which only runs backup jobs + that have never completed. + * backup-all: New option: --new. + * backup-one-task: New option: --new. + 2006-11-15 Per Cederqvist <ceder@sedesopim.lysator.liu.se> Back up lyssvn. diff --git a/backup-all b/backup-all index 7d21088fd805762d92ed421950a753797ba084ff..e1c6162e4243cacc14dd43982215e73f2c09230f 100755 --- a/backup-all +++ b/backup-all @@ -1,11 +1,15 @@ #!/bin/sh usage () { - echo $0: usage: $0 '[ --failed | --retry ] partno...' >&2 + echo $0: usage: $0 '[ options ] partno...' >&2 + echo ' --failed Only run backup jobs that failed.' >&2 + echo ' --retry Only run backup jobs that produced warnings.' >&2 + echo ' --new Only run backup jobs that have never completed.' >&2 } failed= retry= +new= while true do @@ -16,6 +20,9 @@ do x--retry) shift retry=--retry;; + x--new) + shift + new=--new;; x--*) usage exit 1;; @@ -81,7 +88,7 @@ do fi /nobackup/backup.lysator/bin/backup-one-task \ - $failed $retry \ + $failed $retry $new \ $lysrdiffpart "$category" "$subcategory" "$server" "$serverpath" \ "$ctr/$total $category $subcategory" ctr=`expr $ctr + 1` diff --git a/backup-one-task b/backup-one-task index d19eba44f8a7a32587fedccffc9d75aa6b1ffa99..734bd8787ef85042b8da33a1079de8a88024007e 100755 --- a/backup-one-task +++ b/backup-one-task @@ -6,10 +6,12 @@ usage () { echo Recognized options: >&2 echo ' --failed Only run failed backups' >&2 echo ' --retry Only run backups with output from rdiff-backup' >&2 + echo ' --new Only run backups that never completed' >&2 } failed=0 retry=0 +new=0 while [ $# -gt 1 ] do @@ -20,6 +22,9 @@ do x--retry) shift retry=1;; + x--new) + shift + new=1;; x--*) usage exit 1;; @@ -41,6 +46,7 @@ serverpath="$5" msg="$6" case "$server" in + wrath) remoterdiff=/usr/bin/rdiff-backup;; manhattan) remoterdiff=/usr/bin/rdiff-backup;; sedesopim) remoterdiff=/usr/bin/rdiff-backup;; home) remoterdiff=/usr/local/bin/rdiff-backup;; @@ -69,6 +75,12 @@ then exit 0 fi +if [ $new = 1 ] && [ -f "$statebase"-end ] +then + rmdir "$lockdir" + exit 0 +fi + if [ $retry = 1 ] && [ "`(wc -c < \"$rdifflogfile\") 2>/dev/null`" = 0 ] then rmdir "$lockdir" diff --git a/fetch-backup-work b/fetch-backup-work index ae6d957e39856643878c840899409caeef56883b..1f56e6a94d440a1a361c561789788acbde86e6cc 100755 --- a/fetch-backup-work +++ b/fetch-backup-work @@ -1,18 +1,21 @@ #!/bin/sh -rm /nobackup/backup.lysator/var/tasks +TASKS=/nobackup/backup.lysator/var/tasks +NT=$TASKS.tmp + +rm -f $NT ssh stalingrad ls -1 /svnroot \ | sort \ | awk '$1 == "lost+found" { next } {print "lsvn", $1, "stalingrad /svnroot/" $1}' \ ->> /nobackup/backup.lysator/var/tasks +>> $NT ssh stalingrad ls -1 /cvsroot \ | sort \ | awk '$1 == "lost+found" { next } {print "lyscvs", $1, "stalingrad /cvsroot/" $1}' \ ->> /nobackup/backup.lysator/var/tasks +>> $NT ssh uhumhummy ls -1 /lysator/lyswww/users/common \ | grep -v USAGE \ @@ -20,12 +23,12 @@ ssh uhumhummy ls -1 /lysator/lyswww/users/common \ | grep -v '^cap\.fm$' \ | sort \ | awk '{print "lyswww", $1, "uhumhummy /lysator/lyswww/users/common/" $1}' \ ->> /nobackup/backup.lysator/var/tasks +>> $NT ssh uhumhummy ls -1 /lysator/lyswww/users/roxen_only \ | sort \ | awk '{print "roxen", $1, "uhumhummy /lysator/lyswww/users/roxen_only/" $1}'\ ->> /nobackup/backup.lysator/var/tasks +>> $NT ssh nema.lysator.liu.se ypcat -k auto_home \ | sort \ @@ -57,18 +60,31 @@ ssh nema.lysator.liu.se ypcat -k auto_home \ $1 == "sge" { next } { print }' \ | sed 's/^/home /' \ ->> /nobackup/backup.lysator/var/tasks +>> $NT echo lyskom kom compulsion /export/mdsk2/sw_lyskom_compulsion \ ->> /nobackup/backup.lysator/var/tasks +>> $NT -echo sedesopim var sedesopim /var >> /nobackup/backup.lysator/var/tasks -echo sedesopim home sedesopim /home >> /nobackup/backup.lysator/var/tasks -echo sedesopim root sedesopim / >> /nobackup/backup.lysator/var/tasks -echo sedesopim boot sedesopim /boot >> /nobackup/backup.lysator/var/tasks +echo sedesopim var sedesopim /var >> $NT +echo sedesopim home sedesopim /home >> $NT +echo sedesopim root sedesopim / >> $NT +echo sedesopim boot sedesopim /boot >> $NT -echo poseidon var poseidon /var >> /nobackup/backup.lysator/var/tasks -echo poseidon root poseidon /root >> /nobackup/backup.lysator/var/tasks -ssh poseidon 'cd /var/repositories && ls -1 | while read d ; do [ -d "$d" ] && echo "$d" ; done' \ +echo poseidon var poseidon /var >> $NT +echo poseidon root poseidon /root >> $NT +ssh poseidon 'cd /var/repositories && ls -1 | while read d ; do [ -d "$d" ] && [ ! -L "$d" ] && echo "$d" ; done' \ +| grep -v '^snes9x-rediffbackup$' \ | awk '{ print "lyssvn", $1, "poseidon", "/var/repositories/" $1 }' \ -| sort >> /nobackup/backup.lysator/var/tasks +| sort >> $NT + +echo hanna root hanna / >> $NT +ssh hanna 'cd /export/hanna/ftp/pub && ls -1 | while read d ; do [ -d "$d" ] && [ ! -L "$d" ] && echo "$d" ; done' \ +| awk '{ print "ftp-pub", $1, "hanna", "/export/hanna/ftp/pub/" $1 }' \ +| sort >> $NT + +echo medreg sqldump wrath /var/lib/mysql-dump >> $NT + +diff -u $TASKS $NT +echo -n '[CONFIRM] ' +read line +mv -f $NT $TASKS