#!/bin/bash URL="http://10.10.20.225:1880/vpn-status" MY_HOSTNAME=$(hostname) echo "Starte VPN Status Sync..." # HEADER bestimmen HEADER_LINE=$(netclient ping | grep "NAME" ) NAME_COL=$(echo "$HEADER_LINE" | awk -F'|' '{for(i=1;i<=NF;i++) if($i ~ /NAME/) print i}') CONNECTED_COL=$(echo "$HEADER_LINE" | awk -F'|' '{for(i=1;i<=NF;i++) if($i ~ /CONNECTED/) print i}') # Alle Zeilen mit vpn-Clients, ohne Trennlinien netclient ping | grep "vpn-" | grep -v "+" | while read -r line; do # Name aus der korrekten Spalte CLIENT=$(echo "$line" | awk -F'|' -v col=$NAME_COL '{gsub(/[^a-zA-Z0-9._-]/,"",$col); print $col}' | xargs) # Status aus der korrekten Spalte RAW_STATUS=$(echo "$line" | awk -F'|' -v col=$CONNECTED_COL '{print $col}' | xargs) # true/false setzen if [[ "$RAW_STATUS" == "true" ]]; then STATUS=true else STATUS=false fi echo "Sende: $CLIENT ^f^r $STATUS" curl -s -X POST "$URL" \ -H "Content-Type: application/json" \ -d "{\"server\":\"$MY_HOSTNAME\",\"client\":\"$CLIENT\",\"status\":$STATUS}" done echo "Fertig."