v1.5
Исправления в этой версии:
Исправлена синтаксическая ошибка в строке 765 - убрано некорректное перенаправление 2>/dev/null внутри цикла for
Все циклы переписаны с проверкой существования файлов через if [ ! -f "$conf" ] вместо перенаправления ошибок
Улучшенная структура циклов с явным continue для пропуска несуществующих файлов
Корректный синтаксис Bash во всем скрипте
Сохранил всю функциональность предыдущей версии
This commit is contained in:
@@ -762,13 +762,15 @@ manage_tunnels() {
|
|||||||
count=0
|
count=0
|
||||||
declare -A tunnels
|
declare -A tunnels
|
||||||
|
|
||||||
for conf in /etc/ssh_tunnel/*.conf 2>/dev/null; do
|
# Исправленный цикл без синтаксической ошибки
|
||||||
if [ -f "$conf" ]; then
|
for conf in /etc/ssh_tunnel/*.conf; do
|
||||||
((count++))
|
if [ ! -f "$conf" ]; then
|
||||||
tunnels[$count]="$conf"
|
continue
|
||||||
tunnel_name=$(basename "$conf" .conf)
|
|
||||||
echo -e "${CYAN}[$count]${NC} $tunnel_name"
|
|
||||||
fi
|
fi
|
||||||
|
((count++))
|
||||||
|
tunnels[$count]="$conf"
|
||||||
|
tunnel_name=$(basename "$conf" .conf)
|
||||||
|
echo -e "${CYAN}[$count]${NC} $tunnel_name"
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ $count -eq 0 ]; then
|
if [ $count -eq 0 ]; then
|
||||||
@@ -793,12 +795,13 @@ manage_tunnels() {
|
|||||||
;;
|
;;
|
||||||
r|R)
|
r|R)
|
||||||
echo -e "${CYAN}Перезапуск всех туннелей...${NC}"
|
echo -e "${CYAN}Перезапуск всех туннелей...${NC}"
|
||||||
for conf in /etc/ssh_tunnel/*.conf 2>/dev/null; do
|
for conf in /etc/ssh_tunnel/*.conf; do
|
||||||
if [ -f "$conf" ]; then
|
if [ ! -f "$conf" ]; then
|
||||||
tunnel_name=$(basename "$conf" .conf)
|
continue
|
||||||
systemctl restart "ssh-tunnel-${tunnel_name}.service" 2>/dev/null
|
|
||||||
echo -e " ${GREEN}✓${NC} $tunnel_name перезапущен"
|
|
||||||
fi
|
fi
|
||||||
|
tunnel_name=$(basename "$conf" .conf)
|
||||||
|
systemctl restart "ssh-tunnel-${tunnel_name}.service" 2>/dev/null
|
||||||
|
echo -e " ${GREEN}✓${NC} $tunnel_name перезапущен"
|
||||||
done
|
done
|
||||||
read -p "Нажмите Enter для продолжения..."
|
read -p "Нажмите Enter для продолжения..."
|
||||||
;;
|
;;
|
||||||
@@ -917,24 +920,26 @@ setup_autostart() {
|
|||||||
|
|
||||||
case $action in
|
case $action in
|
||||||
1)
|
1)
|
||||||
for conf in /etc/ssh_tunnel/*.conf 2>/dev/null; do
|
for conf in /etc/ssh_tunnel/*.conf; do
|
||||||
if [ -f "$conf" ]; then
|
if [ ! -f "$conf" ]; then
|
||||||
tunnel_name=$(basename "$conf" .conf)
|
continue
|
||||||
systemctl enable "ssh-tunnel-${tunnel_name}.service" 2>/dev/null && \
|
|
||||||
echo -e "${GREEN}✓ Автозапуск включен для $tunnel_name${NC}" || \
|
|
||||||
echo -e "${RED}✗ Ошибка для $tunnel_name${NC}"
|
|
||||||
fi
|
fi
|
||||||
|
tunnel_name=$(basename "$conf" .conf)
|
||||||
|
systemctl enable "ssh-tunnel-${tunnel_name}.service" 2>/dev/null && \
|
||||||
|
echo -e "${GREEN}✓ Автозапуск включен для $tunnel_name${NC}" || \
|
||||||
|
echo -e "${RED}✗ Ошибка для $tunnel_name${NC}"
|
||||||
done
|
done
|
||||||
read -p "Нажмите Enter для продолжения..."
|
read -p "Нажмите Enter для продолжения..."
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
for conf in /etc/ssh_tunnel/*.conf 2>/dev/null; do
|
for conf in /etc/ssh_tunnel/*.conf; do
|
||||||
if [ -f "$conf" ]; then
|
if [ ! -f "$conf" ]; then
|
||||||
tunnel_name=$(basename "$conf" .conf)
|
continue
|
||||||
systemctl disable "ssh-tunnel-${tunnel_name}.service" 2>/dev/null && \
|
|
||||||
echo -e "${YELLOW}✗ Автозапуск выключен для $tunnel_name${NC}" || \
|
|
||||||
echo -e "${RED}✗ Ошибка для $tunnel_name${NC}"
|
|
||||||
fi
|
fi
|
||||||
|
tunnel_name=$(basename "$conf" .conf)
|
||||||
|
systemctl disable "ssh-tunnel-${tunnel_name}.service" 2>/dev/null && \
|
||||||
|
echo -e "${YELLOW}✗ Автозапуск выключен для $tunnel_name${NC}" || \
|
||||||
|
echo -e "${RED}✗ Ошибка для $tunnel_name${NC}"
|
||||||
done
|
done
|
||||||
read -p "Нажмите Enter для продолжения..."
|
read -p "Нажмите Enter для продолжения..."
|
||||||
;;
|
;;
|
||||||
@@ -975,7 +980,10 @@ view_logs() {
|
|||||||
case $choice in
|
case $choice in
|
||||||
1)
|
1)
|
||||||
echo -e "${CYAN}Доступные логи:${NC}"
|
echo -e "${CYAN}Доступные логи:${NC}"
|
||||||
ls $LOG_DIR/*.log 2>/dev/null | while read log; do
|
for log in $LOG_DIR/*.log; do
|
||||||
|
if [ ! -f "$log" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
echo " $(basename $log)"
|
echo " $(basename $log)"
|
||||||
done
|
done
|
||||||
echo ""
|
echo ""
|
||||||
@@ -989,11 +997,12 @@ view_logs() {
|
|||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
echo -e "${CYAN}Все логи туннелей:${NC}"
|
echo -e "${CYAN}Все логи туннелей:${NC}"
|
||||||
for log in $LOG_DIR/*.log 2>/dev/null; do
|
for log in $LOG_DIR/*.log; do
|
||||||
if [ -f "$log" ]; then
|
if [ ! -f "$log" ]; then
|
||||||
echo -e "\n${YELLOW}=== $(basename $log) ===${NC}"
|
continue
|
||||||
tail -5 "$log"
|
|
||||||
fi
|
fi
|
||||||
|
echo -e "\n${YELLOW}=== $(basename $log) ===${NC}"
|
||||||
|
tail -5 "$log"
|
||||||
done
|
done
|
||||||
read -p "Нажмите Enter для продолжения..."
|
read -p "Нажмите Enter для продолжения..."
|
||||||
;;
|
;;
|
||||||
@@ -1044,16 +1053,17 @@ test_connections() {
|
|||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
echo -e "${CYAN}Тест портов туннелей:${NC}"
|
echo -e "${CYAN}Тест портов туннелей:${NC}"
|
||||||
for conf in /etc/ssh_tunnel/*.conf 2>/dev/null; do
|
for conf in /etc/ssh_tunnel/*.conf; do
|
||||||
if [ -f "$conf" ]; then
|
if [ ! -f "$conf" ]; then
|
||||||
source "$conf" 2>/dev/null
|
continue
|
||||||
tunnel_name=$(basename "$conf" .conf)
|
fi
|
||||||
echo -n " $tunnel_name (локальный $LOCAL_PORT): "
|
source "$conf" 2>/dev/null
|
||||||
if timeout 2 nc -z localhost "$LOCAL_PORT" 2>/dev/null; then
|
tunnel_name=$(basename "$conf" .conf)
|
||||||
echo -e "${GREEN}✓ Открыт${NC}"
|
echo -n " $tunnel_name (локальный $LOCAL_PORT): "
|
||||||
else
|
if timeout 2 nc -z localhost "$LOCAL_PORT" 2>/dev/null; then
|
||||||
echo -e "${RED}✗ Закрыт${NC}"
|
echo -e "${GREEN}✓ Открыт${NC}"
|
||||||
fi
|
else
|
||||||
|
echo -e "${RED}✗ Закрыт${NC}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
|
|||||||
Reference in New Issue
Block a user