From 9f32fada4c9c1af0ebec1d74126fe72937d91608 Mon Sep 17 00:00:00 2001 From: clerie Date: Fri, 7 Mar 2025 21:54:17 +0100 Subject: [PATCH] Notify monitoring about successful backups --- .../files/clerie-backup-update-monitoring.sh | 6 ++++++ bundles/uberspace-clerie-backup/items.py | 5 +++++ nodes.py | 12 ++++++------ 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 bundles/uberspace-clerie-backup/files/clerie-backup-update-monitoring.sh diff --git a/bundles/uberspace-clerie-backup/files/clerie-backup-update-monitoring.sh b/bundles/uberspace-clerie-backup/files/clerie-backup-update-monitoring.sh new file mode 100644 index 0000000..a7a2b34 --- /dev/null +++ b/bundles/uberspace-clerie-backup/files/clerie-backup-update-monitoring.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +JOB_NAME="$1" +TARGET_NAME="$2" + +echo "clerie_backup_last_successful_run_time{backup_job=\"${JOB_NAME}\", backup_target=\"${TARGET_NAME}\"} $(date +%s)" > "/home/{{ node.username }}/.local/state/prometheus-node-exporter/textfiles/clerie-backup-${JOB_NAME}-${TARGET_NAME}.prom" diff --git a/bundles/uberspace-clerie-backup/items.py b/bundles/uberspace-clerie-backup/items.py index b187f66..3838f1a 100644 --- a/bundles/uberspace-clerie-backup/items.py +++ b/bundles/uberspace-clerie-backup/items.py @@ -38,6 +38,11 @@ files = uberspaceify.files({ "action:install_restic", ], }, + f'/home/{node.username}/bin/clerie-backup-update-monitoring': { + "source": "clerie-backup-update-monitoring.sh", + "content_type": "jinja2", + "mode": "0700", + }, **repo_config_files, }) diff --git a/nodes.py b/nodes.py index 0eebeb2..89a2f78 100644 --- a/nodes.py +++ b/nodes.py @@ -46,10 +46,10 @@ nodes = uberspaceify.nodes({ }, "cron": { "jobs": { - "backup_main-cyan": "42 */2 * * * clerie-backup main-cyan backup", - "backup_main-cyan_mysql": "52 */2 * * * clerie-backup main-cyan restic backup --stdin-filename mysql-databases.sql --stdin-from-command -- mysqldump --all-databases", - "backup_main-magenta": "13 */2 * * * clerie-backup main-magenta backup", - "backup_main-magenta_mysql": "23 */2 * * * clerie-backup main-magenta restic backup --stdin-filename mysql-databases.sql --stdin-from-command -- mysqldump --all-databases", + "backup_main-cyan": "42 */2 * * * clerie-backup main-cyan backup && clerie-backup-update-monitoring main cyan", + "backup_main-cyan_mysql": "52 */2 * * * clerie-backup main-cyan restic backup --stdin-filename mysql-databases.sql --stdin-from-command -- mysqldump --all-databases && clerie-backup-update-monitoring main_mysql cyan", + "backup_main-magenta": "13 */2 * * * clerie-backup main-magenta backup && clerie-backup-update-monitoring main magenta", + "backup_main-magenta_mysql": "23 */2 * * * clerie-backup main-magenta restic backup --stdin-filename mysql-databases.sql --stdin-from-command -- mysqldump --all-databases && clerie-backup-update-monitoring main_mysql magenta", }, }, }, @@ -66,8 +66,8 @@ nodes = uberspaceify.nodes({ }, "cron": { "jobs": { - "backup_main-cyan": "42 */2 * * * clerie-backup main-cyan backup", - "backup_main-magenta": "13 */2 * * * clerie-backup main-magenta backup", + "backup_main-cyan": "42 */2 * * * clerie-backup main-cyan backup && clerie-backup-update-monitoring main cyan", + "backup_main-magenta": "13 */2 * * * clerie-backup main-magenta backup && clerie-backup-update-monitoring main magenta", }, }, },