diff --git a/usr/local/bin/custom/poe.sh b/usr/local/bin/custom/poe.sh index a0c5f1e..4a38bd9 100644 --- a/usr/local/bin/custom/poe.sh +++ b/usr/local/bin/custom/poe.sh @@ -92,7 +92,7 @@ function manual_restart() { continue fi echo "$(date '+%Y-%m-%d %H:%M:%S') Manueller Neustart von $dev_name gestartet." >> "$LOGFILE" - if [ -n "$switch_port" ] && [ "$switch_port" != "None" ]; then + if [ -n "$switch_ip" ] && [ -n "$switch_port" ] && [ "$switch_port" != "None" ]; then disable_poe "$switch_ip" "$switch_port" "$switch_user" "$switch_pass" echo "$(date '+%Y-%m-%d %H:%M:%S') $dev_name PoE deaktiviert." >> "$LOGFILE" sleep 2 @@ -119,14 +119,17 @@ echo "" > "$LOGFILE" while true; do echo "--------------------------------------------------------------------" >> "$LOGFILE" - python3 /srv/poe_manager/generate_ips.py | while IFS='|' read -r rpi_ip dev_name switch_ip switch_hostname switch_port switch_user switch_pass; do + python3 /srv/poe_manager/generate_ips.py | while IFS='|' read -r rpi_ip dev_name switch_ip switch_hostname switch_port switch_user switch_pass mac; do if ping -c 1 -W 2 "$rpi_ip" &> /dev/null; then echo "$(date '+%Y-%m-%d %H:%M:%S') $dev_name ist erreichbar!" >> "$LOGFILE" else echo "$(date '+%Y-%m-%d %H:%M:%S') $dev_name ist nicht erreichbar!" >> "$LOGFILE" - # Nur PoE neu starten, wenn Port vorhanden ist - if [ -n "$switch_port" ] && [ "$switch_port" != "None" ]; then + # Nur PoE neu starten, wenn dem Gerät auch tatsächlich ein Switch + # zugeordnet ist (switch_ip) — ein reiner Port-Wert ohne Switch + # (switch_ip leer) darf keinen SSH-Versuch mit leeren + # Zugangsdaten auslösen. + if [ -n "$switch_ip" ] && [ -n "$switch_port" ] && [ "$switch_port" != "None" ]; then disable_poe "$switch_ip" "$switch_port" "$switch_user" "$switch_pass" echo "$(date '+%Y-%m-%d %H:%M:%S') $dev_name PoE auf Port $switch_port am Switch $switch_hostname deaktiviert." >> "$LOGFILE" sleep 2