#!/bin/bash URL="http://10.10.20.225:1880/vpn-status" MY_HOSTNAME=$(hostname) echo "Starte VPN Status Sync..." # Ausgabe in temporäre Datei TMPFILE=$(mktemp) netclient ping > "$TMPFILE" # Zeilenweise verarbeiten while IFS= read -r line; do # Spalte 2 = Clientname, Spalte 4 = Status CLIENT_RAW=$(echo "$line" | awk -F'|' '{print $2}' | xargs) STATUS_RAW=$(echo "$line" | awk -F'|' '{print $4}' | xargs) # Zeilen ohne Clientname überspringen [[ -z "$CLIENT_RAW" ]] && continue # Nur Clients mit 'vpn' im Namen berücksichtigen if [[ "$CLIENT_RAW" != *vpn* ]]; then continue fi # Leerzeichen/Emojis/Sonderzeichen für Key entfernen CLIENT=$(echo "$CLIENT_RAW" | sed 's/[^a-zA-Z0-9._-]//g') # Status in Boolean if [[ "$STATUS_RAW" == "true" ]]; then STATUS=true else STATUS=false fi echo "Sende: $CLIENT → $STATUS ..." # POST an Node-RED curl -s -X POST -H "Content-Type: application/json" \ -d "{\"server\": \"$MY_HOSTNAME\", \"client\": \"$CLIENT\", \"status\": $STATUS}" \ "$URL" > /dev/null done < "$TMPFILE" # Tempdatei löschen rm -f "$TMPFILE" echo "Fertig."