opt/zion-terminal/bin/zion-radar (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#!/usr/bin/env bash
# ZION TERMINAL - Radar de latencia dos peers Tailscale
# Cyberdeck criado por Pablo Murad em 2026
export LC_ALL=C
. /opt/zion-terminal/bin/zion-lib.sh 2>/dev/null
[ "$1" = "--help" ] && { echo "Uso: zion radar — mede a latencia (tailscale ping) de cada peer online e mostra direto/DERP com cores."; exit 0; }
command -v tailscale >/dev/null || { echo "Tailscale nao instalado."; exit 1; }
printf '%b RADAR TAILSCALE — latencia dos peers%b\n' "$ZP$ZB" "$ZR"; zion_regua 54
printf ' %b%-18s %-10s %-10s %s%b\n' "$ZMUT" "PEER" "VIA" "LATENCIA" "ESTADO" "$ZR"
# peers online (linhas 100.x que nao sejam 'offline')
tailscale status 2>/dev/null | awk '/^100\./ && !/offline/ {print $1" "$2}' | while read -r pip pname; do
[ "$pname" = "$(hostname)" ] && continue
res=$(timeout 6 tailscale ping -c 1 --timeout 3s "$pname" 2>/dev/null | head -1)
if echo "$res" | grep -q "via DERP"; then
via="DERP"; ms=$(echo "$res" | grep -o 'in [0-9]*ms' | grep -o '[0-9]*'); cor=$ZWARN
elif echo "$res" | grep -q "direct"; then
via="direto"; ms=$(echo "$res" | grep -o 'in [0-9]*ms' | grep -o '[0-9]*'); cor=$ZOK
else
via="—"; ms=""; cor=$ZCRIT
fi
est=$([ -n "$ms" ] && echo "online" || echo "sem resposta")
printf ' %b%-18s%b %b%-10s %-10s %s%b\n' "$ZWHT" "$pname" "$ZR" "$cor" "$via" "${ms:+${ms}ms}" "$est" "$ZR"
done
zion_regua 54
printf ' %bverde=direto amarelo=DERP vermelho=sem resposta%b\n' "$ZGRY" "$ZR"
|