From 3c547da0c171d7a0cd2cfbf825fd3fcb8b0bc340 Mon Sep 17 00:00:00 2001 From: Per Cederqvist <ceder@lysator.liu.se> Date: Mon, 2 Jun 2008 06:43:56 +0000 Subject: [PATCH] Don't mix output from clean op and the backup. Only clone good backups. --- backup-one-task | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/backup-one-task b/backup-one-task index a8a7751..8559c10 100755 --- a/backup-one-task +++ b/backup-one-task @@ -72,6 +72,7 @@ excl_abs="$base"/exclude.abs age="$base"/age files="$base"/files rdifflogfile="$base"/rdiff-backup.out +rdiffcleanlogfile="$base"/rdiff-clean-backup.out summaryfile="$base"/backup-summary.txt lockdir="$base"/lock state="$lysrdiff"/state @@ -146,7 +147,7 @@ then --null-separator \ --force \ -v 2 \ - "$files" > "$rdifflogfile" 2>&1 + "$files" > "$rdiffcleanlogfile" 2>&1 fi if [ $only_prune = 1 ] @@ -201,7 +202,7 @@ then --include-globbing-filelist "$excl_abs" \ --remote-schema "$schema" \ --force \ - "$server"::"$serverpath" "$files" >> "$rdifflogfile" 2>&1 + "$server"::"$serverpath" "$files" > "$rdifflogfile" 2>&1 exit=$? echo -ne "${CLR}" @@ -255,7 +256,8 @@ then rm -f "$base"/last-failure rm -f "$statebase"--fail - if [ `wc -c < "$rdifflogfile"` = 0 ] + if [ `wc -c < "$rdifflogfile"` = 0 ] \ + && [ `wc -c < "$rdiffcleanlogfile"` = 0 ] then touch "$statebase"--nowarn touch "$base"/last-nowarn-backup @@ -264,10 +266,20 @@ then logger -p local5.info -t LYSrdiff "$lysrdiffpart $category $subcategory: OK" $ss --ok $disk $part "$category" "$subcategory" else - echo ${msg}: WARNING: output from rdiff-backup: - echo - sed 's/^/ /' "$rdifflogfile" - echo + if [ `wc -c < "$rdiffcleanlogfile"` != 0 ] + then + echo ${msg}: WARNING: output from rdiff-backup cleaning: + echo + sed 's/^/ /' "$rdiffcleanlogfile" + echo + fi + if [ `wc -c < "$rdifflogfile"` != 0 ] + then + echo ${msg}: WARNING: output from rdiff-backup: + echo + sed 's/^/ /' "$rdifflogfile" + echo + fi if [ ! -f "$statebase"--warn ] then touch "$statebase"--warn @@ -301,6 +313,9 @@ do if [ "`cat $id`" != "$disk $copy $part" ] then echo wrong disk mounted at /lysrdiff/$disk/$copy/$part >&2 + elif [ -f "$statebase"--fail ] + then + echo skipping clone of $category/$subcategory: backup failed >&2 else copylysrdiff="/lysrdiff/$disk/$copy/$part/lysrdiff" copybase="$copylysrdiff/backups/$category/$subcategory" -- GitLab