From 2c8ff6196881b7aaabd48b77804c07a54ca5c892 Mon Sep 17 00:00:00 2001 From: vitaly Date: Sun, 7 Jun 2026 20:19:43 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20issue=20#9=20=E2=80=94=20=D0=BB=D0=BE?= =?UTF-8?q?=D0=B3=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B2=20~/.config/ai-setup/setup.log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - setup.sh: функция _log(), вызов при каждом пункте меню - scripts/ru-bypass.sh, ks-on.sh, ks-off.sh: пишут события в лог через USER_HOME - setup.sh item 5: показывает tail -10 лога в «Последние события» - USER_HOME передаётся через sudo env в ks-on/ks-off/ru-bypass Co-Authored-By: Claude Sonnet 4.6 --- scripts/ks-off.sh | 2 ++ scripts/ks-on.sh | 2 ++ scripts/ru-bypass.sh | 3 +++ setup.sh | 18 ++++++++++++++++-- 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/scripts/ks-off.sh b/scripts/ks-off.sh index 7a6b33c..2aded86 100644 --- a/scripts/ks-off.sh +++ b/scripts/ks-off.sh @@ -15,3 +15,5 @@ echo "Готово. UFW выключен." echo "Теперь отключи Amnezia через её GUI — трафик пойдёт напрямую (российский IP)." echo "" echo "Чтобы вернуть kill switch: sudo bash ks-on.sh" +_log_file="${USER_HOME:-$HOME}/.config/ai-setup/setup.log" +printf '%s [ks-off] Kill switch отключён на %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$(hostname)" >> "$_log_file" 2>/dev/null || true diff --git a/scripts/ks-on.sh b/scripts/ks-on.sh index f5d13f9..23dff34 100644 --- a/scripts/ks-on.sh +++ b/scripts/ks-on.sh @@ -40,3 +40,5 @@ echo "" echo "Готово. Kill switch активен." echo "" ufw status | head -3 +_log_file="${USER_HOME:-$HOME}/.config/ai-setup/setup.log" +printf '%s [ks-on] Kill switch включён на %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$(hostname)" >> "$_log_file" 2>/dev/null || true diff --git a/scripts/ru-bypass.sh b/scripts/ru-bypass.sh index 07618f1..46b9414 100644 --- a/scripts/ru-bypass.sh +++ b/scripts/ru-bypass.sh @@ -234,3 +234,6 @@ RU_EXAMPLE=$(dig +short ya.ru A 2>/dev/null | head -1) echo " ip route get 8.8.8.8 -> dev amn0 (через VPN)" echo " ip route get ${RU_EXAMPLE:-} -> dev $DEV (напрямую .ru)" echo " ip route get 10.10.0.1 -> dev $DEV (напрямую *.loc / RFC1918)" +_log_file="${USER_HOME:-$HOME}/.config/ai-setup/setup.log" +printf '%s [ru-bypass] GATEWAY=%s DEV=%s, блоков: %s\n' \ + "$(date '+%Y-%m-%d %H:%M:%S')" "$GATEWAY" "$DEV" "$ENTRIES" >> "$_log_file" 2>/dev/null || true diff --git a/setup.sh b/setup.sh index 58f8c1f..ce5f323 100755 --- a/setup.sh +++ b/setup.sh @@ -8,6 +8,10 @@ YEL='\033[0;33m' GRY='\033[0;37m' CLR='\033[0m' +mkdir -p "$HOME/.config/ai-setup" +LOG="$HOME/.config/ai-setup/setup.log" +_log() { printf '%s [%s] %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$1" "$2" >> "$LOG"; } + echo "" echo -e "${BLD}=== AI Setup ===${CLR}" echo "" @@ -44,6 +48,8 @@ echo -n "Выбери [1-7] или Enter для выхода: " read -r choice echo "" +[ -n "$choice" ] && _log "setup" "Пункт $choice на $(hostname)" + case "$choice" in 1) bash scripts/ai-setup.sh @@ -100,10 +106,10 @@ case "$choice" in echo -n "Продолжить? [y/N] " read -r confirm [ "$confirm" = "y" ] || [ "$confirm" = "Y" ] || exit 0 - sudo bash scripts/ks-off.sh + sudo USER_HOME="$HOME" bash scripts/ks-off.sh ;; 4) - sudo bash scripts/ks-on.sh + sudo USER_HOME="$HOME" bash scripts/ks-on.sh ;; 5) echo -e "${BLD}=== Статус ===${CLR}" @@ -171,6 +177,14 @@ case "$choice" in echo -e " ${YEL}✗${CLR} $_name: недоступен" fi done + + echo "" + echo -e "${BLD}Последние события:${CLR}" + if [ -f "$LOG" ]; then + tail -10 "$LOG" | sed 's/^/ /' + else + echo " (лог пуст)" + fi ;; 6) bash tests/test_network.sh