skip rotation if previous run failed (daily.0 is a ordinary file)
This commit is contained in:
parent
c2e0f9acb2
commit
61d1013c80
@ -99,21 +99,27 @@ do
|
||||
|
||||
# rotating snapshots of /home (fixme: this should be more general)
|
||||
|
||||
# step 1: delete the oldest snapshot, if it exists:
|
||||
if [ -d "$SNAPSHOT_RW/$NAME/daily.${MAX_ROTATE}" ]
|
||||
if [ -f "$SNAPSHOT_RW/$NAME/daily.0" ]
|
||||
then
|
||||
$RM -rf "$SNAPSHOT_RW/$NAME/daily.${MAX_ROTATE}"
|
||||
fi
|
||||
echo "Previous backup failed, skipping rotation."
|
||||
rm "$SNAPSHOT_RW/$NAME/daily.0"
|
||||
else
|
||||
# step 1: delete the oldest snapshot, if it exists:
|
||||
if [ -d "$SNAPSHOT_RW/$NAME/daily.${MAX_ROTATE}" ]
|
||||
then
|
||||
$RM -rf "$SNAPSHOT_RW/$NAME/daily.${MAX_ROTATE}"
|
||||
fi
|
||||
|
||||
# step 2: shift the snapshots(s) back by one, if they exist
|
||||
for backup_number in $(seq $((${MAX_ROTATE}-1)) -1 0)
|
||||
do
|
||||
if [ -d "$SNAPSHOT_RW/$NAME/daily.${backup_number}" ]
|
||||
then
|
||||
$MV -f "$SNAPSHOT_RW/$NAME/daily.${backup_number}" \
|
||||
"$SNAPSHOT_RW/$NAME/daily.$((${backup_number}+1))"
|
||||
fi
|
||||
done
|
||||
for backup_number in $(seq $((${MAX_ROTATE}-1)) -1 0)
|
||||
do
|
||||
if [ -d "$SNAPSHOT_RW/$NAME/daily.${backup_number}" ]
|
||||
then
|
||||
$MV -f "$SNAPSHOT_RW/$NAME/daily.${backup_number}" \
|
||||
"$SNAPSHOT_RW/$NAME/daily.$((${backup_number}+1))"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# step 3: rsync from the system, linking to latest snapshot if files are
|
||||
# identical.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user