diff --git a/restore.sh b/restore.sh index 322e8e0..7b94c2a 100644 --- a/restore.sh +++ b/restore.sh @@ -2,7 +2,7 @@ # ============================================================================= # /opt/windmill-restore/restore.sh # Windmill Backup Restore Worker -# Version: 1.0.23 +# Version: 1.0.25 # # Unterstützt sowohl VM (qm) als auch CT (pct) Backups. # Backup-Typ wird automatisch aus dem Backup-Pfad erkannt (vm/ oder ct/). @@ -87,6 +87,30 @@ SNAPSHOT_PATH=$(echo "$BACKUP_PATH" | cut -d: -f2-) BACKUP_TYPE=$(echo "$SNAPSHOT_PATH" | cut -d/ -f1) PVE_BACKUP_REF="${PBS_STORAGE}:backup/${SNAPSHOT_PATH}" +# ── Komprimierungsstufe festlegen ───────────────────────────────────────────── +# Standard: mx=1 (schnellste Komprimierung) +# Ausnahme: tnp-Invest-GmbH vm/108 → mx=0 (Store-Modus, kein Komprimieren) +# Hintergrund: Diese VM ist sehr groß und würde mit mx=1 ~10h brauchen. +COMPRESS_LEVEL=1 +if [[ "$CLIENT_NAME" == "tnp-Invest-GmbH" ]] && \ + echo "$SNAPSHOT_PATH" | grep -q "^vm/108/"; then + COMPRESS_LEVEL=0 + echo "INFO: tnp-Invest-GmbH vm/108 erkannt → 7z Store-Modus (mx=0), kein Komprimieren." +fi + +# ── 7z Thread-Anzahl je Host festlegen ──────────────────────────────────────── +# STI-BAC01 → Ryzen 9 5950X (16 Kerne / 32 Threads) → mmt=16 +# ITD-PROX01 → Ryzen 7 3700X ( 8 Kerne / 16 Threads) → mmt=8 +# STI-PROX01 → Xeon E5-1650v3 ( 6 Kerne / 12 Threads) → mmt=6 +# Fallback → mmt=4 +case "$SERVER_HOSTNAME" in + STI-BAC01) MMT_THREADS=16 ;; + ITD-PROX01) MMT_THREADS=8 ;; + STI-PROX01) MMT_THREADS=6 ;; + *) MMT_THREADS=4 ;; +esac +echo "INFO: Server '$SERVER_HOSTNAME' → 7z mmt=${MMT_THREADS}" + # ── Messvariablen ───────────────────────────────────────────────────────────── LAST_DATE=$(date +"%Y-%m-%d" -d "1 day ago") @@ -134,6 +158,7 @@ echo " Rsync-Target: $RSYNC_TARGET" echo " Server: $SERVER_HOSTNAME" echo " Skip-Rsync: $SKIP_RSYNC" echo " Job-UUID: $JOB_UUID" +echo " 7z-Level: mx=${COMPRESS_LEVEL} mmt=${MMT_THREADS}" echo " Start: $(date '+%Y-%m-%d %H:%M:%S')" echo "============================================================" @@ -595,14 +620,14 @@ echo " Name: $VM_NAME" # [10/13] 7Z-ARCHIV # ═════════════════════════════════════════════════════════════════════════════ echo "" -echo "==> [10/13] Erstelle verschlüsseltes 7z-Archiv..." +echo "==> [10/13] Erstelle verschlüsseltes 7z-Archiv (mx=${COMPRESS_LEVEL})..." ZIP_FILE="${ZIP_DIR}/${VM_NAME}-${VM_ID_ORIGINAL}.7z" ZIP_START=$(date +%s) 7z a -t7z \ - -mmt=4 \ - -mx=1 \ + -mmt=${MMT_THREADS} \ + -mx=${COMPRESS_LEVEL} \ -md=16M \ -p"${ZIP_PASSWORD}" \ -mhe=on \ @@ -706,6 +731,7 @@ echo " Image-Dir: $IMAGE_DIR" echo " qm-Agent/CT: $QM_AGENT_OK" echo " Rsync: $RSYNC_OK (Versuche: $RSYNC_RETRIES)" echo " ZIP: $(( ZIP_SIZE_BYTES / 1024 / 1024 )) MB" +echo " 7z-Level: mx=${COMPRESS_LEVEL} mmt=${MMT_THREADS}" [[ -n "$ERROR_MSG" ]] && echo " Fehler: $ERROR_MSG" echo "============================================================"