diff --git a/Utility/WakeOnLan.sh b/Utility/WakeOnLan.sh index 7837e9f..4247be7 100755 --- a/Utility/WakeOnLan.sh +++ b/Utility/WakeOnLan.sh @@ -6,21 +6,27 @@ source "$SCRIPT_DIR/NetworkCheck.sh" source "$SCRIPT_DIR/Log.sh" # === KONFIGURATION === -PING_RETRIES=5 # Anzahl der PING-Versuche vor WOL -WOL_RETRIES=5 # Max. Anzahl der WOL-Versuche +PING_RETRIES_BEFORE_WOL=1 # Anzahl der PING-Versuche vor dem WOL-Signal +PING_RETRIES_AFTER_WOL=10 # Anzahl der PING-Versuche nach dem WOL-Signal +PING_WAIT=10 # Wartezeit nach jedem Ping (Sekunden) +WOL_RETRIES=2 # Max. Anzahl der WOL-Versuche WOL_WAIT=60 # Wartezeit nach WOL (Sekunden) # === FUNKTIONEN === is_reachable() { local device_ip="$1" - for ((i = 1; i<=PING_RETRIES; i++)); do - log "Teste Erreichbarkeit von $device_ip - Versuch $i/$PING_RETRIES..." + local max_retries="$2" # Zweiter Parameter gibt die Anzahl der Versuche an + + for ((i = 1; i<=max_retries; i++)); do + log "Teste Erreichbarkeit von $device_ip - Versuch $i/$max_retries..." if ping -c 1 -W 2 "$device_ip" &>/dev/null; then log "Gerät $device_ip ist erreichbar." return 0 fi + sleep "$PING_WAIT" done + log "Gerät $device_ip ist NICHT erreichbar." return 1 } @@ -51,7 +57,7 @@ wake_device() { wait_for_internet_connection - if is_reachable "$device_ip"; then + if is_reachable "$device_ip" "$PING_RETRIES_BEFORE_WOL"; then log "Gerät ist bereits an, kein WOL nötig." return 0 fi @@ -64,7 +70,7 @@ wake_device() { log "Warte $WOL_WAIT Sekunden..." sleep "$WOL_WAIT" - if is_reachable "$device_ip"; then + if is_reachable "$device_ip" "$PING_RETRIES_AFTER_WOL"; then log "Gerät ist jetzt erreichbar!" return 0 fi