restore.sh aktualisiert
parent
b8f2b02612
commit
f1f23b154b
38
restore.sh
38
restore.sh
|
|
@ -2,7 +2,7 @@
|
|||
# =============================================================================
|
||||
# /opt/windmill-restore/restore.sh
|
||||
# Windmill Backup Restore Worker
|
||||
# Version: 1.0.14
|
||||
# Version: 1.0.15
|
||||
#
|
||||
# Unterstützt sowohl VM (qm) als auch CT (pct) Backups.
|
||||
# Backup-Typ wird automatisch aus dem Backup-Pfad erkannt (vm/ oder ct/).
|
||||
|
|
@ -289,22 +289,38 @@ for i in range(1000, 2000):
|
|||
echo " Restore-ID: $VM_ID_RESTORED"
|
||||
|
||||
# ═════════════════════════════════════════════════════════════════════════════
|
||||
# [2.5/13] CONFIG-ONLY CHECK
|
||||
# Config-only Restore um VM-Name zu ermitteln und zu prüfen ob ZIP bereits
|
||||
# auf dem Backup-Server existiert → bei Fund: Restore überspringen
|
||||
# [2.5/13] CONFIG-CHECK
|
||||
# Config direkt aus PBS-Backup lesen (kein Restore nötig) um VM-Name zu
|
||||
# ermitteln und zu prüfen ob ZIP bereits auf dem Backup-Server existiert.
|
||||
# ═════════════════════════════════════════════════════════════════════════════
|
||||
echo ""
|
||||
echo "==> [2.5/13] Config-only Restore zum Prüfen..."
|
||||
echo "==> [2.5/13] Config aus PBS-Backup lesen..."
|
||||
|
||||
CONFIG_VM_NAME=""
|
||||
CONFIG_TMP="/tmp/pbs_config_${VM_ID_ORIGINAL}_$$.conf"
|
||||
|
||||
# proxmox-backup-client restore holt nur die Config-Datei aus dem Backup
|
||||
# SNAPSHOT_PATH Format: "vm/100/2024-01-15T02:00:00Z"
|
||||
# Config-Datei im Backup heißt "vm.conf" oder "pct.conf"
|
||||
if [[ "$BACKUP_TYPE" == "ct" ]]; then
|
||||
pct restore "$VM_ID_RESTORED" "$PVE_BACKUP_REF" --storage "$RESTORE_PATH" --config-only 1 2>/dev/null || true
|
||||
CONFIG_VM_NAME=$(grep -m1 "^hostname:" /etc/pve/lxc/${VM_ID_RESTORED}.conf 2>/dev/null | awk -F': ' '{print $2}' | tr -d '[:space:]' || echo "")
|
||||
pct destroy "$VM_ID_RESTORED" --purge 1 2>/dev/null || true
|
||||
CONF_FILE_IN_BACKUP="pct.conf"
|
||||
NAME_KEY="^hostname:"
|
||||
else
|
||||
qmrestore "$PVE_BACKUP_REF" "$VM_ID_RESTORED" --storage "$RESTORE_PATH" --config-only 1 2>/dev/null || true
|
||||
CONFIG_VM_NAME=$(grep -m1 "^name:" /etc/pve/qemu-server/${VM_ID_RESTORED}.conf 2>/dev/null | awk -F': ' '{print $2}' | tr -d '[:space:]' || echo "")
|
||||
qm destroy "$VM_ID_RESTORED" --purge 1 2>/dev/null || true
|
||||
CONF_FILE_IN_BACKUP="vm.conf"
|
||||
NAME_KEY="^name:"
|
||||
fi
|
||||
|
||||
export PBS_PASSWORD
|
||||
export PBS_REPOSITORY="${PBS_USER}@${PBS_HOST}:${DATASTORE}"
|
||||
|
||||
proxmox-backup-client restore "${BACKUP_TYPE}/${VM_ID_ORIGINAL}/$(echo "$SNAPSHOT_PATH" | cut -d/ -f3)" "$CONF_FILE_IN_BACKUP" "$CONFIG_TMP" 2>/dev/null || true
|
||||
|
||||
if [[ -f "$CONFIG_TMP" ]]; then
|
||||
CONFIG_VM_NAME=$(grep -m1 "$NAME_KEY" "$CONFIG_TMP" 2>/dev/null | awk -F': ' '{print $2}' | tr -d '[:space:]' || echo "")
|
||||
rm -f "$CONFIG_TMP"
|
||||
echo " VM-Name aus Config: ${CONFIG_VM_NAME:-unbekannt}"
|
||||
else
|
||||
echo " Config nicht lesbar – überspringe ZIP-Check."
|
||||
fi
|
||||
|
||||
echo " VM-Name aus Config: ${CONFIG_VM_NAME:-unbekannt}"
|
||||
|
|
|
|||
Loading…
Reference in New Issue