#!/bin/bash URL="https://node-red.mgnt.vmd55888.de/vpn-status" MY_HOSTNAME=$(hostname) echo "Starte VPN Status Sync..." # Ausgabe von netclient ping speichern mapfile -t LINES < <(netclient ping) for line in "${LINES[@]}"; do # Spalte 2 = Clientname, Spalte 4 = CONNECTED 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 berücksichtigen, die 'vpn' im Namen enthalten 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 echo "Fertig."