diff --git a/miyagi-backup.sh b/miyagi-backup.sh index a05ca3d..d72e0f4 100644 --- a/miyagi-backup.sh +++ b/miyagi-backup.sh @@ -75,6 +75,7 @@ get_sourcehostname() { log "Detected SOURCEHOSTNAME: $SOURCEHOSTNAME" fi } + zfs_replace() { local replace_detected=false for pool in $(zpool list -H -o name); do @@ -90,26 +91,24 @@ zfs_replace() { return 1 fi } + wait_replace() { - local timeout_seconds=86400 # Maximal 24 Stunden warten - local interval_seconds=300 # Alle 5 Minuten prüfen - local waited=0 + local interval_seconds=300 # Alle 5 Minuten prüfen + local waited_minutes=0 - log "Warte auf Abschluss von zpool replace..." + log "ZFS Replace-Vorgang erkannt – warte unbegrenzt auf Abschluss..." - while (( waited < timeout_seconds )); do - if ! zfs_replace; then - log "Replace abgeschlossen nach $((waited/60)) Minuten – System wird heruntergefahren." + while true; do + if ! zfs_replace_in_progress; then + log "Replace abgeschlossen nach $waited_minutes Minuten – fahre jetzt herunter." return 0 fi log "Replace läuft noch – erneut prüfen in $((interval_seconds/60)) Minuten..." sleep "$interval_seconds" - ((waited+=interval_seconds)) + ((waited_minutes+=interval_seconds/60)) done - - log "WARNUNG: Replace nach $((timeout_seconds/3600)) Stunden noch nicht abgeschlossen – kein Shutdown durchgeführt." - return 1 } + set_wol_g_enabled() { log "Checking if ethtool is installed..."