This commit is contained in:
Christoph Haas 2026-09-19 20:02:15 +00:00
commit 99c716d35b
5 changed files with 402 additions and 0 deletions

47
backup.sh Executable file
View file

@ -0,0 +1,47 @@
#!/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="/etc/proxmox-backup/defaults.exclude"
# Create a default exclude file if it doesn't exist
if [ ! -f "$EXCLUDE_FILE" ]; then
mkdir -p "$(dirname "$EXCLUDE_FILE")"
cat << 'EOF' > "$EXCLUDE_FILE"
/proc/*
/sys/*
/dev/*
/run/*
/tmp/*
/mnt/*
/media/*
/lost+found
/var/tmp/*
/var/cache/*
EOF
fi
# ==============================================================================
# EXECUTION
# ==============================================================================
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!"