usr/local/bin/custom/poe.sh aktualisiert
This commit is contained in:
@@ -87,23 +87,45 @@ EOF
|
|||||||
|
|
||||||
echo "" > "$LOGFILE"
|
echo "" > "$LOGFILE"
|
||||||
|
|
||||||
|
MAX_PARALLEL=10 # maximal gleichzeitig laufende Geräte
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
echo "--------------------------------------------------------------------" >> "$LOGFILE"
|
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; do
|
||||||
if ping -c 2 -W 1 "$rpi_ip" &> /dev/null; then
|
# Funktion für ein Gerät
|
||||||
echo "$(date '+%Y-%m-%d %H:%M:%S') $dev_name ist erreichbar!" >> "$LOGFILE"
|
check_device() {
|
||||||
else
|
local rpi_ip="$1"
|
||||||
echo "$(date '+%Y-%m-%d %H:%M:%S') $dev_name ist nicht erreichbar!" >> "$LOGFILE"
|
local dev_name="$2"
|
||||||
|
local switch_ip="$3"
|
||||||
|
local switch_hostname="$4"
|
||||||
|
local switch_port="$5"
|
||||||
|
local switch_user="$6"
|
||||||
|
local switch_pass="$7"
|
||||||
|
|
||||||
# Nur PoE neu starten, wenn Port vorhanden ist
|
if ping -c 4 -W 1 "$rpi_ip" &> /dev/null; then
|
||||||
if [ -n "$switch_port" ] && [ "$switch_port" != "None" ]; then
|
echo "$(date '+%Y-%m-%d %H:%M:%S') $dev_name ist erreichbar!" >> "$LOGFILE"
|
||||||
disable_poe "$switch_ip" "$switch_port" "$switch_user" "$switch_pass"
|
else
|
||||||
echo "$(date '+%Y-%m-%d %H:%M:%S') $dev_name PoE auf Port $switch_port am Switch $switch_hostname deaktiviert." >> "$LOGFILE"
|
echo "$(date '+%Y-%m-%d %H:%M:%S') $dev_name ist nicht erreichbar!" >> "$LOGFILE"
|
||||||
sleep 2
|
|
||||||
enable_poe "$switch_ip" "$switch_port" "$switch_user" "$switch_pass"
|
if [ -n "$switch_port" ] && [ "$switch_port" != "None" ]; then
|
||||||
echo "$(date '+%Y-%m-%d %H:%M:%S') $dev_name PoE auf Port $switch_port am Switch $switch_hostname aktiviert." >> "$LOGFILE"
|
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
|
||||||
|
enable_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 aktiviert." >> "$LOGFILE"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
}
|
||||||
|
|
||||||
|
# Job in Hintergrund starten
|
||||||
|
check_device "$rpi_ip" "$dev_name" "$switch_ip" "$switch_hostname" "$switch_port" "$switch_user" "$switch_pass" &
|
||||||
|
|
||||||
|
# Limit auf MAX_PARALLEL Jobs
|
||||||
|
while [ "$(jobs -rp | wc -l)" -ge "$MAX_PARALLEL" ]; do
|
||||||
|
sleep 0.2
|
||||||
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
wait # alle Hintergrundjobs beenden, bevor sleep
|
||||||
sleep "$SLEEP"
|
sleep "$SLEEP"
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user