bundles/backup-client: retry backups

rsync just fails too often in the last couple of days. I don't want to
babysit this every morning.
This commit is contained in:
Franzi 2021-08-07 06:59:33 +02:00
parent 3c105d3295
commit 8fd73e09de
Signed by: kunsi
GPG key ID: 12E3D2136B818350

View file

@ -20,19 +20,35 @@ then
fi fi
do_backup() { do_backup() {
# Compress level 1 is a good compromise between speed and cpu usage. rsync_errorcodes_for_this_path=""
rsync --compress-level=1 -aAP --numeric-ids --delete --relative \ backup_has_successfully_run="no"
--rsync-path="/usr/bin/rsync --fake-super" \
-e "ssh -o IdentityFile=/etc/backup.priv -o StrictHostKeyChecking=accept-new -p ${port}" \
"$1" "$ssh_login":backups/
# Exit code 24 means some files have vanished during rsync. for try in {1..5}
# I don't know why, but this is very common, apparently? do
exitcode=$? echo "Running Backup for $1, try $try ..." >&2
if [[ $exitcode != 0 ]] && [[ $exitcode != 24 ]]
# Compress level 1 is a good compromise between speed and cpu usage.
rsync --compress-level=1 -aAP --numeric-ids --delete --relative \
--rsync-path="/usr/bin/rsync --fake-super" \
-e "ssh -o IdentityFile=/etc/backup.priv -o StrictHostKeyChecking=accept-new -p ${port}" \
"$1" "$ssh_login":backups/
# Exit code 24 means some files have vanished during rsync.
# I don't know why, but this is very common, apparently?
exitcode=$?
if [[ $exitcode != 0 ]] && [[ $exitcode != 24 ]]
then
rsync_errorcodes_for_this_path+=" $exitcode"
else
backup_has_successfully_run="yes"
break
fi
done
if [[ "$backup_has_successfully_run" != "yes" ]]
then then
<%text> <%text>
rsync_errors+="${NL}${1} ${exitcode}" rsync_errors+="${NL}${1}${rsync_errors_for_this_path}"
</%text> </%text>
fi fi
} }