#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # shellcheck source=backup.env source "$SCRIPT_DIR/backup.env" # ============================================================================== # BACKUP-SPECIFIC CONFIGURATION # ============================================================================== BACKUP_LABEL="${HOSTNAME}-root" EXCLUDE_FILE="/opt/backup/exclude" # ============================================================================== # EXECUTION # ============================================================================== if [ ! -f "$EXCLUDE_FILE" ]; then echo "error: exclude list not found at $EXCLUDE_FILE — run setup.sh first" >&2 exit 1 fi echo "Starting Proxmox Backup for ${HOSTNAME}..." EXCLUDE_ARGS=() while IFS= read -r line; do [ -z "$line" ] && continue EXCLUDE_ARGS+=(--exclude "$line") done < "$EXCLUDE_FILE" proxmox-backup-client backup "${BACKUP_LABEL}.pxar:/" \ --keyfile "$ENCRYPTION_KEY_FILE" \ --ns "$BACKUP_NS" \ "${EXCLUDE_ARGS[@]}" echo "Backup completed successfully!"