From 76b15212f0a1f6864e5bc37aaa0f735547b5f09b Mon Sep 17 00:00:00 2001 From: James Brechtel Date: Sun, 1 Jun 2025 10:18:01 -0400 Subject: [PATCH] Logs failure --- backups/monitored-backup | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) 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