Init repo

This commit is contained in:
lobanov_v committed 2026-09-23 13:47:50 +00:00
commit 68fa37802c
3 files changed
+698

No files matched your search

+37
View File
@@ -0,0 +1,37 @@
#!/bin/bash
CONTAINER="amnezia-awg2"
case "$1" in
discovery)
# Генерируем LLD JSON со списком IP-адресов клиентов
echo -n '{"data":['
first=1
# dump выводит: public_key preshared_key endpoint allowed_ips latest_handshake transfer_rx transfer_tx persistent_keepalive
while read -r pub psk endп allowed hand rx tx keep; do
[ -z "$allowed" ] && continue
ip=$(echo "$allowed" | cut -d'/' -f1)
# Убираем двоеточие из пустых полей, если пир не подключался
[ "$ip" = "(none)" ] && continue
if [ $first -eq 0 ]; then echo -n ','; fi
echo -n "{\"{#PEER_IP}\":\"$ip\", \"{#PEER_KEY}\":\"${pub:0:8}\"}"
first=0
done < <(docker exec $CONTAINER awg show awg0 dump 2>/dev/null | tail -n +2)
echo ']}'
;;
rx)
# Получаем полученный трафик (в байтах) по IP клиента
docker exec $CONTAINER awg show awg0 dump 2>/dev/null | grep "$2/" | awk '{print $6}'
;;
tx)
# Получаем переданный трафик (в байтах) по IP клиента
docker exec $CONTAINER awg show awg0 dump 2>/dev/null | grep "$2/" | awk '{print $7}'
;;
handshake)
# Время последнего handshake (Unix Timestamp)
# Чтобы понять, сколько секунд назад было подключение: Текущее время минус это значение
# Если 0 - клиент никогда не подключался
echo $(docker exec $CONTAINER awg show awg0 dump 2>/dev/null | grep "$2/" | awk '{print $5}')
;;
esac