diff --git a/ChangeLog b/ChangeLog index ecf973b85d9aa653c0acd174184c01c1840ee480..ce2e6fbbc7b7977342e96b466d04c27791a9d768 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2006-12-19 Per Cederqvist <ceder@sedesopim.lysator.liu.se> + Use syslog. Keep track of the origin of backups. Removed + workaround for manhattan. Detect crashed servers faster. + * backup-one-task: Removed special case for manhattan. Store the + origin of a backup in the origin file, and refuse to back up from + a different origin (but tell the administrator how to proceed). + Use ServerAliveInterval to speed up detection of a crashed + server. Log a message to syslog when a backup completes. + Added a top-level script that runs backups repeatedly. * backup-repeatedly: New file. diff --git a/backup-one-task b/backup-one-task index 734bd8787ef85042b8da33a1079de8a88024007e..d9cdb4188d0fc532078e426500c44fadd13cd64a 100755 --- a/backup-one-task +++ b/backup-one-task @@ -63,6 +63,7 @@ rdifflogfile="$base"/rdiff-backup.out summaryfile="$base"/backup-summary.txt lockdir="$base"/lock state="$lysrdiff"/state +origin="$base"/origin mkdir -p "$files" mkdir "$lockdir" || exit 1 @@ -87,11 +88,27 @@ then exit 0 fi -if [ "$server" = manhattan ] +if [ ! -f "$origin" ] then + echo "$server":"$serverpath" > "$origin" +fi + +rm -f "$origin.new" +echo "$server":"$serverpath" > "$origin.new" +if ! diff -u "$origin" "$origin.new" +then + echo Skipping backup due to changed origin. Remove >&2 + echo "$origin" >&2 + echo to override. >&2 + + # Leave the origin.new file. Flag this as a failure. + touch "$base"/last-failure + touch "$statebase"-fail rmdir "$lockdir" + exit 0 fi +rm "$origin.new" unset SSH_ASKPASS unset SSH_AUTH_SOCK @@ -128,7 +145,8 @@ touch "$statebase"-attempt echo -ne "${CLR}${msg}: running rdiff-backup$ETA" -schema="ssh -o BatchMode=yes -a -k -x -i /root/.ssh/backupkey" +schema="ssh -o BatchMode=yes -o ServerAliveInterval=120" +schema="$schema -a -k -x -i /root/.ssh/backupkey" schema="$schema %s $remoterdiff --server" rdiff-backup --exclude-other-filesystems --null-separator \ @@ -162,6 +180,7 @@ then touch "$base"/last-nowarn-backup rm -f "$statebase"-neverwarnfree rm -f "$statebase"-warn + logger -p local5.info -t LYSrdiff "$lysrdiffpart $category $subcategory: OK" else echo ${msg}: WARNING: output from rdiff-backup: echo @@ -175,6 +194,7 @@ then then touch "$statebase"-neverwarnfree fi + logger -p local5.info -t LYSrdiff "$lysrdiffpart $category $subcategory: OK with warnings" fi else mv "$base"/backup-attempt-start "$base"/last-failure @@ -183,6 +203,7 @@ else echo sed 's/^/ /' "$rdifflogfile" echo + logger -p local5.info -t LYSrdiff "$lysrdiffpart $category $subcategory: FAIL" fi rmdir "$lockdir"