Init
This commit is contained in:
1 parent
9c58aab51c
commit
76fc9a89cf
4 files changed
+245
No files matched your search
Executable
+132
@@ -0,0 +1,132 @@
|
||||
#!/bin/bash
|
||||
|
||||
DB="/opt/docker-composes/rustdesk/data/db_v2.sqlite3"
|
||||
HBBR="hbbr"
|
||||
PORT="21117"
|
||||
|
||||
case "$1" in
|
||||
|
||||
peers)
|
||||
sqlite3 "$DB" "SELECT COUNT(*) FROM peer;"
|
||||
;;
|
||||
|
||||
peer_ip)
|
||||
ID="$2"
|
||||
|
||||
sqlite3 -noheader "$DB" \
|
||||
"SELECT json_extract(info, '\$.ip') FROM peer WHERE id='$ID';" |
|
||||
sed 's/^::ffff://'
|
||||
;;
|
||||
|
||||
discovery)
|
||||
sqlite3 -separator '|' -noheader "$DB" \
|
||||
"SELECT id, json_extract(info, '$.ip')
|
||||
FROM peer
|
||||
ORDER BY created_at DESC;" |
|
||||
while IFS='|' read -r id ip; do
|
||||
ip="${ip#::ffff:}"
|
||||
printf '%s|%s\n' "$id" "$ip"
|
||||
done |
|
||||
jq -R -s '
|
||||
split("\n")
|
||||
| map(select(length > 0))
|
||||
| map(split("|"))
|
||||
| map({
|
||||
"{#RD_ID}": .[0],
|
||||
"{#RD_IP}": .[1]
|
||||
})
|
||||
'
|
||||
;;
|
||||
|
||||
connections)
|
||||
PID="$(docker inspect -f '{{.State.Pid}}' "$HBBR" 2>/dev/null)" || exit 1
|
||||
|
||||
if [ -z "$PID" ] || [ "$PID" = "0" ]; then
|
||||
echo "0"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
nsenter -t "$PID" -n \
|
||||
ss -H -tn state established '( sport = :21117 )' 2>/dev/null |
|
||||
wc -l
|
||||
;;
|
||||
|
||||
sessions)
|
||||
PID="$(docker inspect -f '{{.State.Pid}}' "$HBBR" 2>/dev/null)" || exit 1
|
||||
|
||||
if [ -z "$PID" ] || [ "$PID" = "0" ]; then
|
||||
echo "0"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
CONNECTIONS="$(
|
||||
nsenter -t "$PID" -n \
|
||||
ss -H -tn state established '( sport = :21117 )' 2>/dev/null |
|
||||
wc -l
|
||||
)"
|
||||
|
||||
echo $((CONNECTIONS / 2))
|
||||
;;
|
||||
|
||||
relay_ips)
|
||||
nsenter -t "$(docker inspect -f '{{.State.Pid}}' "$HBBR")" -n \
|
||||
ss -H -tn state established '( sport = :21117 )' |
|
||||
awk '{print $4}' |
|
||||
sed -E 's/^\[::ffff:([^]]+)\]:[0-9]+$/\1/' |
|
||||
sort -u
|
||||
;;
|
||||
|
||||
relay_json)
|
||||
nsenter -t "$(docker inspect -f '{{.State.Pid}}' "$HBBR")" -n \
|
||||
ss -H -tn state established '( sport = :21117 )' |
|
||||
awk '{print $5}' |
|
||||
sed -E \
|
||||
-e 's/^\[::ffff://g' \
|
||||
-e 's/\]:[0-9]+$//g' |
|
||||
sort -u |
|
||||
jq -R -s '
|
||||
split("\n")
|
||||
| map(select(length > 0))
|
||||
| {
|
||||
connections: length,
|
||||
ips: .
|
||||
}
|
||||
'
|
||||
;;
|
||||
|
||||
json)
|
||||
peers=$(sqlite3 "$DB" "SELECT COUNT(*) FROM peer;")
|
||||
|
||||
connections=$(
|
||||
nsenter -t "$(docker inspect -f '{{.State.Pid}}' "$HBBR")" -n \
|
||||
ss -H -tn state established '( sport = :21117 )' |
|
||||
wc -l
|
||||
)
|
||||
|
||||
sessions=$((connections / 2))
|
||||
|
||||
jq -n \
|
||||
--argjson peers "$peers" \
|
||||
--argjson connections "$connections" \
|
||||
--argjson sessions "$sessions" \
|
||||
'{
|
||||
peers: $peers,
|
||||
relay_connections: $connections,
|
||||
relay_sessions: $sessions
|
||||
}'
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage:"
|
||||
echo " $0 peers"
|
||||
echo " $0 peer_ip <RUSTDESK_ID>"
|
||||
echo " $0 discovery"
|
||||
echo " $0 connections"
|
||||
echo " $0 sessions"
|
||||
echo " $0 relay_ips"
|
||||
echo " $0 relay_json"
|
||||
echo " $0 json"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
Reference in new issue
Block a user