diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2010-09-20 22:10:13 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2010-09-20 22:10:13 -0300 |
commit | eff27ce1cd0cd4f25d23c7d51bfd5283b30882db (patch) | |
tree | 405c07f5660b460062402402d05112a2150eef1e /handlers/rsync.in | |
parent | c0c02efafd0eb34355aa72e2f14f22ccd81018e9 (diff) | |
download | backupninja-eff27ce1cd0cd4f25d23c7d51bfd5283b30882db.tar.gz backupninja-eff27ce1cd0cd4f25d23c7d51bfd5283b30882db.tar.bz2 |
Fixing long rotation at rsync handler
Diffstat (limited to 'handlers/rsync.in')
-rw-r--r-- | handlers/rsync.in | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/handlers/rsync.in b/handlers/rsync.in index fea7e7b..537fd4c 100644 --- a/handlers/rsync.in +++ b/handlers/rsync.in @@ -384,14 +384,14 @@ function rotate_long { for rottype in daily weekly monthly; do seconds=$((seconds_${rottype})) - dir="$backuproot/$rottype" - metadata="$backuproot/metadata/$rottype.1" - mkdir -p $metadata + metadata="$backuproot/metadata/$rottype" + + mkdir -p $metadata.1 if [ ! -d $dir.1 ]; then echo "Debug: $dir.1 does not exist, skipping." continue 1 - elif [ ! -f $metadata/created ] && [ ! -f $metadata/rotated ]; then + elif [ ! -f $metadata.1/created ] && [ ! -f $metadata.1/rotated ]; then echo "Warning: metadata does not exist for $dir.1. This backup may be only partially completed. Skipping rotation." continue 1 fi @@ -401,10 +401,10 @@ function rotate_long { [ "$oldest" == "" ] && oldest=0 for (( i=$oldest; i > 0; i-- )); do if [ -d $dir.$i ]; then - if [ -f $metadata/created ]; then - created=`tail -1 $metadata/created` - elif [ -f $metadata/rotated ]; then - created=`tail -1 $metadata/rotated` + if [ -f $metadata.$i/created ]; then + created=`tail -1 $metadata.$i/created` + elif [ -f $metadata.$i/rotated ]; then + created=`tail -1 $metadata.$i/rotated` else created=0 fi @@ -414,8 +414,9 @@ function rotate_long { if [ ! -d $dir.$next ]; then echo "Debug: $rottype.$i --> $rottype.$next" $nice mv $dir.$i $dir.$next - mkdir -p $backuproot/metadata/$rottype.$next - date +%c%n%s > $backuproot/metadata/$rottype.$next/rotated + mkdir -p $metadata.$next + date +%c%n%s > $metadata.$next/rotated + rm -f $metadata.$next/created else echo "Debug: skipping rotation of $dir.$i because $dir.$next already exists." fi @@ -485,14 +486,14 @@ function rotate_long_remote { for rottype in daily weekly monthly; do seconds=\$((seconds_\${rottype})) - dir="$backuproot/\$rottype" - metadata="$backuproot/metadata/\$rottype.1" - mkdir -p \$metadata + metadata="$backuproot/metadata/\$rottype" + + mkdir -p \$metadata.1 if [ ! -d \$dir.1 ]; then echo "Debug: \$dir.1 does not exist, skipping." continue 1 - elif [ ! -f \$metadata/created ] && [ ! -f \$metadata/rotated ]; then + elif [ ! -f \$metadata.1/created ] && [ ! -f \$metadata.1/rotated ]; then echo "Warning: metadata does not exist for \$dir.1. This backup may be only partially completed. Skipping rotation." continue 1 fi @@ -502,10 +503,10 @@ function rotate_long_remote { [ "\$oldest" == "" ] && oldest=0 for (( i=\$oldest; i > 0; i-- )); do if [ -d \$dir.\$i ]; then - if [ -f \$metadata/created ]; then - created=\`tail -1 \$metadata/created\` - elif [ -f \$metadata/rotated ]; then - created=\`tail -1 \$metadata/rotated\` + if [ -f \$metadata.\$i/created ]; then + created=\`tail -1 \$metadata.\$i/created\` + elif [ -f \$metadata.\$i/rotated ]; then + created=\`tail -1 \$metadata.\$i/rotated\` else created=0 fi @@ -515,8 +516,9 @@ function rotate_long_remote { if [ ! -d \$dir.\$next ]; then echo "Debug: \$rottype.\$i --> \$rottype.\$next" $nice mv \$dir.\$i \$dir.\$next - mkdir -p $backuproot/metadata/\$rottype.\$next - date +%c%n%s > $backuproot/metadata/\$rottype.\$next/rotated + mkdir -p \$metadata.\$next + date +%c%n%s > \$metadata.\$next/rotated + rm -f \$metadata.\$next/created else echo "Debug: skipping rotation of \$dir.\$i because \$dir.\$next already exists." fi @@ -528,7 +530,7 @@ function rotate_long_remote { done max=\$((keepdaily+1)) - if [ \$keepweekly -gt 0 -a -d $backuproot/daily.\$max -a ! -d \$backuproot/weekly.1 ]; then + if [ \$keepweekly -gt 0 -a -d $backuproot/daily.\$max -a ! -d $backuproot/weekly.1 ]; then echo "Debug: daily.\$max --> weekly.1" $nice mv $backuproot/daily.\$max $backuproot/weekly.1 mkdir -p $backuproot/metadata/weekly.1 |