summaryrefslogtreecommitdiff
path: root/restic_check.sh
diff options
context:
space:
mode:
authorSam Scholten2025-09-11 16:06:10 +1000
committerSam Scholten2025-09-11 16:06:10 +1000
commita7115770e9e377689d9996abe32a28e8db87429d (patch)
tree27d08eb347a8b38aeb47b7eb51050a85ff4c7876 /restic_check.sh
downloaddrestic-a7115770e9e377689d9996abe32a28e8db87429d.tar.gz
drestic-a7115770e9e377689d9996abe32a28e8db87429d.zip
init
Diffstat (limited to 'restic_check.sh')
-rwxr-xr-xrestic_check.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/restic_check.sh b/restic_check.sh
new file mode 100755
index 0000000..210b11e
--- /dev/null
+++ b/restic_check.sh
@@ -0,0 +1,43 @@
+#!/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 memory-efficient integrity check on repository: $RESTIC_REPOSITORY (1% data subset)..."
+restic check \
+ --repo "${RESTIC_REPOSITORY}" \
+ --password-file "${RESTIC_PASSWORD_FILE}" \
+ --read-data-subset 1% \
+ --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) ---"