restore.sh aktualisiert

add  $(date '+%Y-%m-%d %H:%M:%S') to Echo for prozess start Info
main
sebastian.serfling 2026-03-23 06:50:12 +00:00
parent ccddbfd2d1
commit dc911dc983
1 changed files with 15 additions and 15 deletions

View File

@ -206,7 +206,7 @@ send_webhook() {
"$QM_AGENT_OK" "$LOG_FILE") "$QM_AGENT_OK" "$LOG_FILE")
echo "" echo ""
echo "==> Sende Webhook..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> Sende Webhook..."
echo " Payload: $payload" echo " Payload: $payload"
local http_response local http_response
http_response=$(curl -s -w "\n%{http_code}" \ http_response=$(curl -s -w "\n%{http_code}" \
@ -250,7 +250,7 @@ trap 'STATUS="failed"
# [0/13] 7Z-PASSWORT VOM PBS-SERVER HOLEN # [0/13] 7Z-PASSWORT VOM PBS-SERVER HOLEN
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [0/13] 7z-Passwort vom PBS-Server holen ($PBS_HOST)..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [0/13] 7z-Passwort vom PBS-Server holen ($PBS_HOST)..."
mkdir -p "$KEY_DIR" mkdir -p "$KEY_DIR"
chmod 700 "$KEY_DIR" chmod 700 "$KEY_DIR"
@ -280,7 +280,7 @@ echo " 7z-Passwort geladen ✓"
# [1/13] SPACE-CHECK # [1/13] SPACE-CHECK
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [1/13] Prüfe freien Speicherplatz auf $RESTORE_MOUNT..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [1/13] Prüfe freien Speicherplatz auf $RESTORE_MOUNT..."
mkdir -p "$ZIP_DIR" mkdir -p "$ZIP_DIR"
FREE_KB=$(df "$RESTORE_MOUNT" 2>/dev/null | awk 'NR==2{print $4}' || echo "0") FREE_KB=$(df "$RESTORE_MOUNT" 2>/dev/null | awk 'NR==2{print $4}' || echo "0")
FREE_GB=$(( FREE_KB / 1024 / 1024 )) FREE_GB=$(( FREE_KB / 1024 / 1024 ))
@ -291,7 +291,7 @@ echo " Frei: ${FREE_GB} GB"
# [2/13] ID ERMITTELN # [2/13] ID ERMITTELN
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [2/13] Ermittle IDs..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [2/13] Ermittle IDs..."
VM_ID_ORIGINAL=$(echo "$SNAPSHOT_PATH" | grep -oP '\d+' | head -1 || echo "0") VM_ID_ORIGINAL=$(echo "$SNAPSHOT_PATH" | grep -oP '\d+' | head -1 || echo "0")
echo " Original-ID: $VM_ID_ORIGINAL (Typ: $BACKUP_TYPE)" echo " Original-ID: $VM_ID_ORIGINAL (Typ: $BACKUP_TYPE)"
@ -321,7 +321,7 @@ echo " Restore-ID: $VM_ID_RESTORED"
# ob ZIP bereits auf dem Backup-Server existiert → Restore überspringen # ob ZIP bereits auf dem Backup-Server existiert → Restore überspringen
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [2.5/13] Config aus PBS-Backup lesen..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [2.5/13] Config aus PBS-Backup lesen..."
CONFIG_VM_NAME="" CONFIG_VM_NAME=""
CONFIG_TMP="/tmp/pbs_config_${VM_ID_ORIGINAL}_$$.conf" CONFIG_TMP="/tmp/pbs_config_${VM_ID_ORIGINAL}_$$.conf"
@ -395,7 +395,7 @@ fi
# [3/13] RESTORE # [3/13] RESTORE
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [3/13] Restore vom PBS-Storage ($BACKUP_TYPE)..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [3/13] Restore vom PBS-Storage ($BACKUP_TYPE)..."
echo " Backup-Ref: $PVE_BACKUP_REF" echo " Backup-Ref: $PVE_BACKUP_REF"
echo " Storage: $RESTORE_PATH" echo " Storage: $RESTORE_PATH"
echo " ID: $VM_ID_RESTORED" echo " ID: $VM_ID_RESTORED"
@ -421,7 +421,7 @@ echo " Restore abgeschlossen in ${RESTORE_DURATION}s"
# [4/13] IMAGE_DIR DYNAMISCH ERMITTELN # [4/13] IMAGE_DIR DYNAMISCH ERMITTELN
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [4/13] Ermittle Image-Verzeichnis..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [4/13] Ermittle Image-Verzeichnis..."
STORAGE_BASE=$(pvesh get "/storage/${RESTORE_PATH}" --output-format json \ STORAGE_BASE=$(pvesh get "/storage/${RESTORE_PATH}" --output-format json \
2>/dev/null | python3 -c " 2>/dev/null | python3 -c "
import json, sys import json, sys
@ -478,7 +478,7 @@ echo " Image-Größe: $(( ACTUAL_DISK_BYTES / 1024 / 1024 / 1024 )) GB"
# [5/13] IMAGES PRÜFEN # [5/13] IMAGES PRÜFEN
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [5/13] Prüfe Images..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [5/13] Prüfe Images..."
if [[ ! -d "$IMAGE_DIR" ]] || [[ -z "$(ls -A "$IMAGE_DIR" 2>/dev/null)" ]]; then if [[ ! -d "$IMAGE_DIR" ]] || [[ -z "$(ls -A "$IMAGE_DIR" 2>/dev/null)" ]]; then
ERROR_MSG="IMAGE_DIR leer oder nicht vorhanden: $IMAGE_DIR" ERROR_MSG="IMAGE_DIR leer oder nicht vorhanden: $IMAGE_DIR"
echo " FEHLER: $ERROR_MSG" echo " FEHLER: $ERROR_MSG"
@ -498,7 +498,7 @@ echo " Images vorhanden ✓"
# [6/13] VORBEREITEN # [6/13] VORBEREITEN
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [6/13] Vorbereiten ($BACKUP_TYPE)..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [6/13] Vorbereiten ($BACKUP_TYPE)..."
if [[ "$BACKUP_TYPE" == "ct" ]]; then if [[ "$BACKUP_TYPE" == "ct" ]]; then
pct unlock "$VM_ID_RESTORED" 2>/dev/null || true pct unlock "$VM_ID_RESTORED" 2>/dev/null || true
@ -525,7 +525,7 @@ fi
# [7/13] STARTEN & PRÜFEN # [7/13] STARTEN & PRÜFEN
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [7/13] Starte & prüfe ($BACKUP_TYPE)..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [7/13] Starte & prüfe ($BACKUP_TYPE)..."
if [[ "$BACKUP_TYPE" == "ct" ]]; then if [[ "$BACKUP_TYPE" == "ct" ]]; then
pct start "$VM_ID_RESTORED" 2>/dev/null || true pct start "$VM_ID_RESTORED" 2>/dev/null || true
@ -567,7 +567,7 @@ fi
# [8/13] STOPPEN # [8/13] STOPPEN
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [8/13] Stoppe $BACKUP_TYPE..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [8/13] Stoppe $BACKUP_TYPE..."
if [[ "$BACKUP_TYPE" == "ct" ]]; then if [[ "$BACKUP_TYPE" == "ct" ]]; then
pct stop "$VM_ID_RESTORED" 2>/dev/null || true pct stop "$VM_ID_RESTORED" 2>/dev/null || true
sleep 10 sleep 10
@ -587,7 +587,7 @@ echo " Gestoppt."
# [9/13] CONFIG SICHERN # [9/13] CONFIG SICHERN
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [9/13] Config sichern..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [9/13] Config sichern..."
if [[ "$BACKUP_TYPE" == "ct" ]]; then if [[ "$BACKUP_TYPE" == "ct" ]]; then
PVE_CONF="/etc/pve/lxc/${VM_ID_RESTORED}.conf" PVE_CONF="/etc/pve/lxc/${VM_ID_RESTORED}.conf"
@ -615,7 +615,7 @@ echo " Name: $VM_NAME"
# [10/13] 7Z-ARCHIV # [10/13] 7Z-ARCHIV
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [10/13] Erstelle verschlüsseltes 7z-Archiv (mx=${COMPRESS_LEVEL})..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [10/13] Erstelle verschlüsseltes 7z-Archiv (mx=${COMPRESS_LEVEL})..."
ZIP_FILE="${ZIP_DIR}/${VM_NAME}-${VM_ID_ORIGINAL}.7z" ZIP_FILE="${ZIP_DIR}/${VM_NAME}-${VM_ID_ORIGINAL}.7z"
ZIP_START=$(date +%s) ZIP_START=$(date +%s)
@ -639,7 +639,7 @@ echo " ZIP: $(( ZIP_SIZE_BYTES / 1024 / 1024 )) MB in ${ZIP_DURATION}s"
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
RSYNC_TARGET_DATE="${RSYNC_TARGET}/${LAST_DATE}" RSYNC_TARGET_DATE="${RSYNC_TARGET}/${LAST_DATE}"
echo "==> [11/13] Rsync / Datei-Transfer..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [11/13] Rsync / Datei-Transfer..."
if [[ "$SKIP_RSYNC" == "1" ]]; then if [[ "$SKIP_RSYNC" == "1" ]]; then
echo " Lokaler Modus: ZIP bereits in ${RSYNC_TARGET_DATE} kein Rsync." echo " Lokaler Modus: ZIP bereits in ${RSYNC_TARGET_DATE} kein Rsync."
@ -697,7 +697,7 @@ fi
# [12/13] AUFRÄUMEN # [12/13] AUFRÄUMEN
# ═════════════════════════════════════════════════════════════════════════════ # ═════════════════════════════════════════════════════════════════════════════
echo "" echo ""
echo "==> [12/13] Aufräumen..." echo "$(date '+%Y-%m-%d %H:%M:%S') ==> [12/13] Aufräumen..."
if [[ "$BACKUP_TYPE" == "ct" ]]; then if [[ "$BACKUP_TYPE" == "ct" ]]; then
pct destroy "$VM_ID_RESTORED" --purge 1 \ pct destroy "$VM_ID_RESTORED" --purge 1 \
2>/dev/null || echo " CT $VM_ID_RESTORED nicht mehr vorhanden." 2>/dev/null || echo " CT $VM_ID_RESTORED nicht mehr vorhanden."