diff --git a/wg-client-status.sh b/wg-client-status.sh index 051a7a6..1df9473 100644 --- a/wg-client-status.sh +++ b/wg-client-status.sh @@ -5,20 +5,18 @@ MY_HOSTNAME=$(hostname) echo "Starte VPN Status Sync..." -# Ausgabe in temporäre Datei -TMPFILE=$(mktemp) -netclient ping > "$TMPFILE" +# Ausgabe von netclient ping speichern +mapfile -t LINES < <(netclient ping) -# Zeilenweise verarbeiten -while IFS= read -r line; do - # Spalte 2 = Clientname, Spalte 4 = Status +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 mit 'vpn' im Namen berücksichtigen + # Nur Clients berücksichtigen, die 'vpn' im Namen enthalten if [[ "$CLIENT_RAW" != *vpn* ]]; then continue fi @@ -39,10 +37,6 @@ while IFS= read -r line; do 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" +done echo "Fertig." \ No newline at end of file