diff --git a/wg-client-status.sh b/wg-client-status.sh index 6803217..682f98a 100644 --- a/wg-client-status.sh +++ b/wg-client-status.sh @@ -1,14 +1,22 @@ #!/bin/bash +# --- Konfiguration --- URL="https://node-red.mgnt.vmd55888.de/vpn-status" MY_HOSTNAME=$(hostname) -echo "Starte VPN Status Sync..." +# Vollständige Pfade für Cron +NETCLIENT=/usr/sbin/netclient # Pfad zu netclient prüfen mit 'which netclient' +CURL=/usr/bin/curl # Pfad zu curl prüfen mit 'which curl' -# Ausgabe von netclient ping speichern -mapfile -t LINES < <(netclient ping) +# --- Start --- +# echo "Starte VPN Status Sync..." # Cron braucht keine Ausgaben -for line in "${LINES[@]}"; do +# Ausgabe von netclient ping in temporäre Datei +TMPFILE=$(mktemp) +$NETCLIENT ping > "$TMPFILE" + +# Zeilenweise verarbeiten +while IFS= read -r line; 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) @@ -31,12 +39,14 @@ for line in "${LINES[@]}"; do STATUS=false fi - echo "Sende: $CLIENT → $STATUS ..." - # POST an Node-RED - curl -s -X POST -H "Content-Type: application/json" \ + $CURL -s -X POST -H "Content-Type: application/json" \ -d "{\"server\": \"$MY_HOSTNAME\", \"client\": \"$CLIENT\", \"status\": $STATUS}" \ "$URL" > /dev/null -done -echo "Fertig." \ No newline at end of file +done < "$TMPFILE" + +# Temporäre Datei löschen +rm -f "$TMPFILE" + +# echo "Fertig." # Cron braucht keine Ausgaben \ No newline at end of file