diff --git a/backups/monitored-backup b/backups/monitored-backup index 015129c..5bffb58 100755 --- a/backups/monitored-backup +++ b/backups/monitored-backup @@ -26,16 +26,24 @@ def backup [job] { def zfsBackup [job] { logStartJob $job.statusSlug - syncoid --no-sync-snap --create-bookmark --no-privilege-elevation --recursive ($job.source) ($job.target) - logFinishedJob $job.statusSlug + try { + syncoid --no-sync-snap --create-bookmark --no-privilege-elevation --recursive ($job.source) ($job.target) + logFinishedJob $job.statusSlug + } catch { |err| + logFailedJob $job.statusSlug $err.debug + } } def kopiaBackup [job] { #using sudo is annoying but since this is backing up docker containers #the permissions are often wrong. I should be using podman + rootless logStartJob $job.statusSlug - sudo kopia --config-file=($job.target) snapshot create ($job.source) - logFinishedJob $job.statusSlug + try { + sudo kopia --config-file=($job.target) snapshot create ($job.source) + logFinishedJob $job.statusSlug + } catch { |err| + logFailedJob $job.statusSlug $err.debug + } } def logStartJob [slug] { @@ -44,6 +52,11 @@ def logStartJob [slug] { curl -s $"($statusHost)/ping/($pingKey)/($slug)/start" | save -f /dev/null } +def logFailedJob [slug, err] { + print $"failed to run job: ($slug) with error: ($err)" + curl -s $"($statusHost)/ping/($pingKey)/($slug)/fail" | save -f /dev/null +} + def logFinishedJob [slug] { print $"finished job: ($slug)" curl -s $"($statusHost)/ping/($pingKey)/($slug)" | save -f /dev/null