#!/bin/bash # --- Konfiguration --- URL="https://node-red.mgnt.vmd55888.de/vpn-status" MY_HOSTNAME=$(hostname) NETCLIENT=$(which netclient) CURL=$(which curl) echo "--- Diagnose-Start ---" echo "Nutze netclient unter: $NETCLIENT" echo "Sende an: $URL" # Teste ob netclient peers überhaupt etwas ausgibt PEERS_OUTPUT=$($NETCLIENT peers) if [ -z "$PEERS_OUTPUT" ]; then echo "FEHLER: 'netclient peers' gibt nichts zurück!" exit 1 fi # Jetzt die eigentliche Schleife echo "$PEERS_OUTPUT" | grep -E "vpn|mdvpn" | while read -r line; do echo "Verarbeite Zeile: $line" # Extraktion CLIENT_RAW=$(echo "$line" | awk -F'|' '{print $3}' | xargs) CLIENT_CLEAN=$(echo "$CLIENT_RAW" | sed 's/[^a-zA-Z0-9._-]//g') HANDSHAKE=$(echo "$line" | awk -F'|' '{print $6}' | xargs) echo "Gefunden: Client='$CLIENT_CLEAN', Handshake='$HANDSHAKE'" STATUS="false" if [[ "$HANDSHAKE" == *"seconds"* ]] || [[ "$HANDSHAKE" =~ ^[1-5]\ minute ]]; then STATUS="true" fi # Der CURL Befehl mit sichtbarer Antwort echo "Sende POST..." RESPONSE=$($CURL -s -w "\nHTTP-Status: %{http_code}\n" -X POST -H "Content-Type: application/json" \ -d "{\"server\": \"$MY_HOSTNAME\", \"client\": \"$CLIENT_RAW\", \"status\": \"$STATUS\", \"handshake\": \"$HANDSHAKE\"}" \ "$URL") echo "Antwort von Node-RED: $RESPONSE" done echo "--- Diagnose-Ende ---"