feat: issue #9 — лог установки в ~/.config/ai-setup/setup.log

- 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 <noreply@anthropic.com>
This commit is contained in:
2026-06-07 20:19:43 +03:00
parent feb401f4ba
commit 2c8ff61968
4 changed files with 23 additions and 2 deletions

View File

@@ -15,3 +15,5 @@ echo "Готово. UFW выключен."
echo "Теперь отключи Amnezia через её GUI — трафик пойдёт напрямую (российский IP)." echo "Теперь отключи Amnezia через её GUI — трафик пойдёт напрямую (российский IP)."
echo "" echo ""
echo "Чтобы вернуть kill switch: sudo bash ks-on.sh" 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

View File

@@ -40,3 +40,5 @@ echo ""
echo "Готово. Kill switch активен." echo "Готово. Kill switch активен."
echo "" echo ""
ufw status | head -3 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

View File

@@ -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 8.8.8.8 -> dev amn0 (через VPN)"
echo " ip route get ${RU_EXAMPLE:-<ya.ru ip>} -> dev $DEV (напрямую .ru)" echo " ip route get ${RU_EXAMPLE:-<ya.ru ip>} -> dev $DEV (напрямую .ru)"
echo " ip route get 10.10.0.1 -> dev $DEV (напрямую *.loc / RFC1918)" 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

View File

@@ -8,6 +8,10 @@ YEL='\033[0;33m'
GRY='\033[0;37m' GRY='\033[0;37m'
CLR='\033[0m' 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 ""
echo -e "${BLD}=== AI Setup ===${CLR}" echo -e "${BLD}=== AI Setup ===${CLR}"
echo "" echo ""
@@ -44,6 +48,8 @@ echo -n "Выбери [1-7] или Enter для выхода: "
read -r choice read -r choice
echo "" echo ""
[ -n "$choice" ] && _log "setup" "Пункт $choice на $(hostname)"
case "$choice" in case "$choice" in
1) 1)
bash scripts/ai-setup.sh bash scripts/ai-setup.sh
@@ -100,10 +106,10 @@ case "$choice" in
echo -n "Продолжить? [y/N] " echo -n "Продолжить? [y/N] "
read -r confirm read -r confirm
[ "$confirm" = "y" ] || [ "$confirm" = "Y" ] || exit 0 [ "$confirm" = "y" ] || [ "$confirm" = "Y" ] || exit 0
sudo bash scripts/ks-off.sh sudo USER_HOME="$HOME" bash scripts/ks-off.sh
;; ;;
4) 4)
sudo bash scripts/ks-on.sh sudo USER_HOME="$HOME" bash scripts/ks-on.sh
;; ;;
5) 5)
echo -e "${BLD}=== Статус ===${CLR}" echo -e "${BLD}=== Статус ===${CLR}"
@@ -171,6 +177,14 @@ case "$choice" in
echo -e " ${YEL}${CLR} $_name: недоступен" echo -e " ${YEL}${CLR} $_name: недоступен"
fi fi
done done
echo ""
echo -e "${BLD}Последние события:${CLR}"
if [ -f "$LOG" ]; then
tail -10 "$LOG" | sed 's/^/ /'
else
echo " (лог пуст)"
fi
;; ;;
6) 6)
bash tests/test_network.sh bash tests/test_network.sh