3 Commits
0.2 ... 0.3

Author SHA1 Message Date
4cb2c5caee version bump
All checks were successful
continuous-integration/drone/tag Build is passing
2024-10-14 17:34:45 +02:00
fc953c1bdd settings for "unreachable" exit status 2024-10-14 17:31:36 +02:00
359d346c33 exit if lockfile present 2024-10-14 17:27:44 +02:00
3 changed files with 24 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
#!/bin/bash #!/bin/bash
CONF=/etc/btrbk/btrbk-cron.conf CONF=/etc/btrbk/btrbk-cron.conf
LOCKFILE=/run/btrbk/btrbk.lock
LOGFILE=$(mktemp) LOGFILE=$(mktemp)
trap 'rm -f -- "${LOGFILE}"' EXIT trap 'rm -f -- "${LOGFILE}"' EXIT
@@ -16,6 +17,7 @@ fi
HEALTHCHECK_URL=${HEALTHCHECK_URL:-http://127.0.0.1} HEALTHCHECK_URL=${HEALTHCHECK_URL:-http://127.0.0.1}
HEALTHCHECK_ENABLE=${HEALTHCHECK_ENABLE:-false} HEALTHCHECK_ENABLE=${HEALTHCHECK_ENABLE:-false}
FAIL_IF_TARGET_UNREACHABLE=${FAIL_IF_TARGET_UNREACHABLE:-true}
CURLOPTS=(-fsS -m 10 --retry 5) CURLOPTS=(-fsS -m 10 --retry 5)
if [[ ! -d /run/btrbk ]] ; then if [[ ! -d /run/btrbk ]] ; then
@@ -29,6 +31,15 @@ else
echo "Info: Healthchecks disabled" echo "Info: Healthchecks disabled"
fi fi
if [[ -f "${LOCKFILE}" ]] ; then
echo "Another instance is still running" | tee -a "${LOGFILE}"
if [[ "${HEALTHCHECK_ENABLE}" = "true" ]] ; then
curl "${CURLOPTS[@]}" --data-binary "@${LOGFILE}" "${HEALTHCHECK_URL}/log"
fi
rm -f -- "${LOGFILE}"
exit 0
fi
HOST=$(grep -E '^[\ \t]*target[\ \t]+send-receive' /etc/btrbk/btrbk.conf) HOST=$(grep -E '^[\ \t]*target[\ \t]+send-receive' /etc/btrbk/btrbk.conf)
# TODO: support for dashes in hostname and IPv6 ("[2001:db8::7]") # TODO: support for dashes in hostname and IPv6 ("[2001:db8::7]")
HOST=$(echo "${HOST}" | sed -r 's/.*ssh:\/\/([0-9\.a-zA-Z]+).*/\1/g' ) HOST=$(echo "${HOST}" | sed -r 's/.*ssh:\/\/([0-9\.a-zA-Z]+).*/\1/g' )
@@ -47,7 +58,11 @@ if [[ "${SSH_OK}" = "" ]] ; then
curl "${CURLOPTS[@]}" --data-binary "@${LOGFILE}" "${HEALTHCHECK_URL}/log" curl "${CURLOPTS[@]}" --data-binary "@${LOGFILE}" "${HEALTHCHECK_URL}/log"
fi fi
rm -f -- "${LOGFILE}" rm -f -- "${LOGFILE}"
if [[ "${FAIL_IF_TARGET_UNREACHABLE}" = "true" ]] ; then
exit 1 exit 1
else
exit 0
fi
fi fi
echo "Start backup: $(date||true)" | tee -a "${LOGFILE}" echo "Start backup: $(date||true)" | tee -a "${LOGFILE}"

View File

@@ -1,2 +1,3 @@
HEALTHCHECK_ENABLE=true HEALTHCHECK_ENABLE=true
HEALTHCHECK_URL=https://my.selfhosted.healthcheck.com/ping/e48e4add-c17c-467c-9a91-7b245ad57fe8 HEALTHCHECK_URL=https://my.selfhosted.healthcheck.com/ping/e48e4add-c17c-467c-9a91-7b245ad57fe8
FAIL_IF_TARGET_UNREACHABLE=true

7
debian/changelog vendored
View File

@@ -1,3 +1,10 @@
btrbk-cron (0.3) stable; urgency=medium
* clean exit if lockfile present
* added FAIL_IF_TARGET_UNREACHABLE setting
-- Paolo Asperti <paolo@asperti.com> Mon, 14 Oct 2024 17:33:58 +0200
btrbk-cron (0.2) stable; urgency=medium btrbk-cron (0.2) stable; urgency=medium
* Added destination aliveness check * Added destination aliveness check