restore.sh aktualisiert
parent
b8f2b02612
commit
f1f23b154b
38
restore.sh
38
restore.sh
|
|
@ -2,7 +2,7 @@
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# /opt/windmill-restore/restore.sh
|
# /opt/windmill-restore/restore.sh
|
||||||
# Windmill Backup Restore Worker
|
# Windmill Backup Restore Worker
|
||||||
# Version: 1.0.14
|
# Version: 1.0.15
|
||||||
#
|
#
|
||||||
# Unterstützt sowohl VM (qm) als auch CT (pct) Backups.
|
# Unterstützt sowohl VM (qm) als auch CT (pct) Backups.
|
||||||
# Backup-Typ wird automatisch aus dem Backup-Pfad erkannt (vm/ oder ct/).
|
# 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"
|
echo " Restore-ID: $VM_ID_RESTORED"
|
||||||
|
|
||||||
# ═════════════════════════════════════════════════════════════════════════════
|
# ═════════════════════════════════════════════════════════════════════════════
|
||||||
# [2.5/13] CONFIG-ONLY CHECK
|
# [2.5/13] CONFIG-CHECK
|
||||||
# Config-only Restore um VM-Name zu ermitteln und zu prüfen ob ZIP bereits
|
# Config direkt aus PBS-Backup lesen (kein Restore nötig) um VM-Name zu
|
||||||
# auf dem Backup-Server existiert → bei Fund: Restore überspringen
|
# ermitteln und zu prüfen ob ZIP bereits auf dem Backup-Server existiert.
|
||||||
# ═════════════════════════════════════════════════════════════════════════════
|
# ═════════════════════════════════════════════════════════════════════════════
|
||||||
echo ""
|
echo ""
|
||||||
echo "==> [2.5/13] Config-only Restore zum Prüfen..."
|
echo "==> [2.5/13] Config aus PBS-Backup lesen..."
|
||||||
|
|
||||||
CONFIG_VM_NAME=""
|
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
|
if [[ "$BACKUP_TYPE" == "ct" ]]; then
|
||||||
pct restore "$VM_ID_RESTORED" "$PVE_BACKUP_REF" --storage "$RESTORE_PATH" --config-only 1 2>/dev/null || true
|
CONF_FILE_IN_BACKUP="pct.conf"
|
||||||
CONFIG_VM_NAME=$(grep -m1 "^hostname:" /etc/pve/lxc/${VM_ID_RESTORED}.conf 2>/dev/null | awk -F': ' '{print $2}' | tr -d '[:space:]' || echo "")
|
NAME_KEY="^hostname:"
|
||||||
pct destroy "$VM_ID_RESTORED" --purge 1 2>/dev/null || true
|
|
||||||
else
|
else
|
||||||
qmrestore "$PVE_BACKUP_REF" "$VM_ID_RESTORED" --storage "$RESTORE_PATH" --config-only 1 2>/dev/null || true
|
CONF_FILE_IN_BACKUP="vm.conf"
|
||||||
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 "")
|
NAME_KEY="^name:"
|
||||||
qm destroy "$VM_ID_RESTORED" --purge 1 2>/dev/null || true
|
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
|
fi
|
||||||
|
|
||||||
echo " VM-Name aus Config: ${CONFIG_VM_NAME:-unbekannt}"
|
echo " VM-Name aus Config: ${CONFIG_VM_NAME:-unbekannt}"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue