diff --git a/btrbk-cron b/btrbk-cron index 719ce08..712d0bc 100755 --- a/btrbk-cron +++ b/btrbk-cron @@ -24,6 +24,7 @@ fi HEALTHCHECK_URL=${HEALTHCHECK_URL:-http://127.0.0.1} HEALTHCHECK_ENABLE=${HEALTHCHECK_ENABLE:-false} FAIL_IF_TARGET_UNREACHABLE=${FAIL_IF_TARGET_UNREACHABLE:-true} +IGNORE_TARGET_UNREACHABLE=${IGNORE_TARGET_UNREACHABLE:-false} CURLOPTS=(-fsS -m 10 --retry 5) if [[ ! -d /run/btrbk ]] ; then @@ -66,16 +67,18 @@ SSHUSER=$(echo "${SSHUSER}" | sed -r 's/.*ssh_user[\ \t]+//g') SSH_OK=$(ssh -i "${IDENTITYFILE}" "${SSHUSER}@${HOST}" "which btrfs") -if [[ "${SSH_OK}" = "" ]] ; then - echo "Warning: exiting because of backup destination unreachable" | tee -a "${LOGFILE}" - if [[ "${HEALTHCHECK_ENABLE}" = "true" ]] ; then - curl "${CURLOPTS[@]}" --data-binary "@${LOGFILE}" "${HEALTHCHECK_URL}/log" - fi - rm -f -- "${LOGFILE}" - if [[ "${FAIL_IF_TARGET_UNREACHABLE}" = "true" ]] ; then - exit 1 - else - exit 0 +if [[ "${IGNORE_TARGET_UNREACHABLE}" = "false" ]] ; then + if [[ "${SSH_OK}" = "" ]] ; then + echo "Warning: exiting because of backup destination unreachable" | tee -a "${LOGFILE}" + if [[ "${HEALTHCHECK_ENABLE}" = "true" ]] ; then + curl "${CURLOPTS[@]}" --data-binary "@${LOGFILE}" "${HEALTHCHECK_URL}/log" + fi + rm -f -- "${LOGFILE}" + if [[ "${FAIL_IF_TARGET_UNREACHABLE}" = "true" ]] ; then + exit 1 + else + exit 0 + fi fi fi diff --git a/btrbk-cron.conf.example b/btrbk-cron.conf.example index deb3944..c81e161 100644 --- a/btrbk-cron.conf.example +++ b/btrbk-cron.conf.example @@ -1,3 +1,4 @@ HEALTHCHECK_ENABLE=true HEALTHCHECK_URL=https://my.selfhosted.healthcheck.com/ping/e48e4add-c17c-467c-9a91-7b245ad57fe8 FAIL_IF_TARGET_UNREACHABLE=true +IGNORE_TARGET_UNREACHABLE=false