#!/bin/bash set -euo pipefail echo "--- Initializing Restic Check Script ---" # Source environment variables if the file exists # This script expects RESTIC_ENV_FILE to be set in the environment # The environment file includes rclone throttling settings to prevent timeouts # shellcheck source=/dev/null if [ -f "$RESTIC_ENV_FILE" ]; then source "$RESTIC_ENV_FILE" echo "Environment variables loaded from $RESTIC_ENV_FILE" else echo "Error: RESTIC_ENV_FILE not found. Please run setup.sh first." >&2 exit 1 fi # Source common functions # shellcheck source=/dev/null source "$(dirname "$0")/common.sh" # --- Pre-warm rclone connection --- pre_warm_connection "Restic Check" # --- Exit Trap --- trap 'notify "Restic Check" "Restic check script finished with exit code $?" $?' EXIT # --- Main Logic --- echo "--- Starting Restic Repository Integrity Check at $(date) ---" echo "Running VPS-optimized repository integrity check on repository: $RESTIC_REPOSITORY (metadata only)..." restic check \ --repo "${RESTIC_REPOSITORY}" \ --password-file "${RESTIC_PASSWORD_FILE}" \ --no-cache \ --verbose || { echo "Error: Restic check failed." >&2 notify "Restic Check ($(whoami)@$(hostname))" "Weekly integrity check failed!" 8 exit 1 } echo "--- Restic Repository Integrity Check finished successfully at $(date) ---"