From 91c5efcbe78185ff19f3dca520415ee50b5a2684 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Fri, 21 Aug 2020 23:30:59 +0300 Subject: [PATCH] Fix script for the case when ssh sometimes dies --- backup.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/backup.sh b/backup.sh index 03dd45f..7fe3369 100755 --- a/backup.sh +++ b/backup.sh @@ -1,6 +1,8 @@ #!/bin/bash # Example incremental backup script +set -e + HOST=your-host.ru ERA_DEVICE=md1p3_era METADATA_DEVICE=/dev/md1p4 @@ -20,14 +22,14 @@ for i in {1..5}; do dmsetup message $ERA_DEVICE 0 take_metadata_snap >/dev/null && \ (era_invalidate --metadata-snapshot --written-since $ERA $METADATA_DEVICE | era_copy $GRANULARITY | perl -pe 's/\s+.*//')"` - if [ $SIZE -le 0 ]; then + if [ "$SIZE" -le 0 ]; then echo "Failed to estimate delta size" exit 1 fi echo "Estimated delta size $((SIZE/1048576)) MB" - if [ $SIZE -le $FREEZE_LIMIT ]; then + if [ "$SIZE" -le $FREEZE_LIMIT ]; then echo "Performing final copy with fsfreeze" @@ -38,7 +40,10 @@ for i in {1..5}; do (era_invalidate --metadata-snapshot --written-since $ERA $METADATA_DEVICE | era_copy --progress $GRANULARITY /dev/mapper/$ERA_DEVICE | gzip); \ fsfreeze --unfreeze $MOUNTPOINT >/dev/null" | \ gzip -d | era_apply $DIR/$FILE) && \ - (ssh root@$HOST "dmsetup status $ERA_DEVICE | perl -e 'print [split /\s+/, <>]->[5]'" > $DIR/era) || exit 1 + (ssh root@$HOST "dmsetup status $ERA_DEVICE | perl -e 'print [split /\s+/, <>]->[5]'" > $DIR/era_new) || exit 1 + mv $DIR/era_new $DIR/era + + echo "Copied up to era "`cat $DIR/era` exit 0 @@ -50,7 +55,8 @@ for i in {1..5}; do dmsetup message $ERA_DEVICE 0 take_metadata_snap >/dev/null && \ (era_invalidate --metadata-snapshot --written-since $ERA $METADATA_DEVICE | era_copy --progress $GRANULARITY /dev/mapper/$ERA_DEVICE | gzip)" | \ gzip -d | era_apply $DIR/$FILE) && \ - (ssh root@$HOST "dmsetup status $ERA_DEVICE | perl -e 'print [split /\s+/, <>]->[5]'" > $DIR/era) || exit 1 + (ssh root@$HOST "dmsetup status $ERA_DEVICE | perl -e 'print [split /\s+/, <>]->[5]'" > $DIR/era_new) || exit 1 + mv $DIR/era_new $DIR/era fi done