wg-client-status.sh hinzugefügt
This commit is contained in:
35
wg-client-status.sh
Normal file
35
wg-client-status.sh
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/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."
|
||||||
Reference in New Issue
Block a user