From c8cc8f25bd7b6790cf68408a417f796a5dea6876 Mon Sep 17 00:00:00 2001 From: Chris Cowan Date: Mon, 20 Oct 2025 15:09:46 -0700 Subject: [PATCH] expanding the bot --- services/backupbot/run | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/services/backupbot/run b/services/backupbot/run index f1814f4..80a421c 100644 --- a/services/backupbot/run +++ b/services/backupbot/run @@ -1,17 +1,27 @@ -#!/usr/bin/env bash +#!/usr/bin/with-contenv bash set -e -LOG_FILE="/config/log/backupbot.log" -mkdir -p "$(dirname "$LOG_FILE")" - -echo "[BACKUPBOT_INFO] Starting PostgreSQL backup loop service..." | tee -a "$LOG_FILE" +echo "[BACKUPBOT_INFO] Starting PostgreSQL backup loop service..." INTERVAL_HOURS="${INTERVAL_HOURS:-24}" +STATE_FILE="/config/last_backup_date" +LOG_FILE="/config/log/pgbackup.log" + +mkdir -p "$(dirname "$STATE_FILE")" "$(dirname "$LOG_FILE")" -# Stay alive forever while true; do - echo "[BACKUPBOT_INFO] Triggering backup.sh at $(date)" | tee -a "$LOG_FILE" - /usr/local/bin/backup.sh "$LOG_FILE" - echo "[BACKUPBOT_INFO] Sleeping for $INTERVAL_HOURS hours..." | tee -a "$LOG_FILE" + TODAY=$(date +%F) + + # Check if a backup already ran today + if [[ -f "$STATE_FILE" && "$(cat "$STATE_FILE")" == "$TODAY" ]]; then + echo "[BACKUPBOT_INFO] Backup already completed today ($TODAY). Skipping." + else + echo "[BACKUPBOT_INFO] Triggering backup.sh at $(date)" + /usr/local/bin/backup.sh "$LOG_FILE" + echo "$TODAY" >"$STATE_FILE" + echo "[BACKUPBOT_INFO] Backup completed and date recorded." + fi + + echo "[BACKUPBOT_INFO] Sleeping for $INTERVAL_HOURS hours..." sleep "${INTERVAL_HOURS}h" done