From cb9db219cbe4a2856ccf1b1e796f8852ba6ac3ef Mon Sep 17 00:00:00 2001 From: NW Date: Mon, 22 Dec 2025 16:34:36 +0000 Subject: [PATCH] v1.5.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Исправления в этой версии: Исправлены все ошибки с EOF - использованы разные метки для вложенных EOF (EOFMGR, EOFCOLORS, EOFSERVICE, EOFMONITOR, EOFTIMER, EOFEXAMPLE, EOFEXSERVICE) Убраны конфликтующие метки - каждая вложенная конструкция << имеет уникальную метку Исправлена проблема с созданием файлов - все файлы создаются корректно, включая /opt/ssh_tunnel_manager/colors.sh Убраны синтаксические ошибки - скрипт теперь компилируется без ошибок Добавлена проверка на существование директорий перед созданием файлов --- install_ssh_tunnel.sh | 58 +++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/install_ssh_tunnel.sh b/install_ssh_tunnel.sh index ea5fe02..d6d06ef 100644 --- a/install_ssh_tunnel.sh +++ b/install_ssh_tunnel.sh @@ -309,7 +309,7 @@ EOF # Перезапускаем SSH демон if systemctl restart sshd 2>/dev/null || service ssh restart 2>/dev/null; then - log_message "SSH демон перезапущен с новыми настройками" "$GREEN" + log_message "SSH демон перезапущен с новыми настройки" "$GREEN" else log_message "Не удалось перезапустить SSH демон" "$YELLOW" fi @@ -468,8 +468,8 @@ install_main_script() { source /etc/ssh_tunnel/vps_settings.conf fi - # Создание основного скрипта менеджера - cat > /opt/ssh_tunnel_manager/manager.sh << 'EOF' + # Создание основного скрипта менеджера с корректным завершением EOF + cat > /opt/ssh_tunnel_manager/manager.sh << 'EOFMGR' #!/bin/bash # Основной скрипт менеджера SSH туннелей @@ -582,13 +582,13 @@ setup_new_vps() { fi # Сохранение настроек - cat > /etc/ssh_tunnel/vps_settings.conf << CONFIGEOF + cat > /etc/ssh_tunnel/vps_settings.conf << CONFIGVPS # Настройки VPS для автономных туннелей VPS_HOST="$NEW_VPS_HOST" VPS_PORT="$NEW_VPS_PORT" VPS_USER="$NEW_VPS_USER" CONFIGURED_ON="$(date '+%Y-%m-%d %H:%M:%S')" -CONFIGEOF +CONFIGVPS echo -e "${GREEN}Настройки сохранены!${NC}" VPS_HOST="$NEW_VPS_HOST" @@ -622,7 +622,7 @@ create_tunnel() { TUNNEL_ID="tunnel_${REMOTE_PORT}_$(date +%s)" CONFIG_FILE="/etc/ssh_tunnel/${TUNNEL_ID}.conf" - cat > "$CONFIG_FILE" << EOF + cat > "$CONFIG_FILE" << CONFTUN TUNNEL_ID="$TUNNEL_ID" VPS_HOST="$VPS_HOST" VPS_PORT="$VPS_PORT" @@ -630,14 +630,14 @@ VPS_USER="$VPS_USER" LOCAL_PORT="$LOCAL_PORT" REMOTE_PORT="$REMOTE_PORT" CREATED="$(date '+%Y-%m-%d %H:%M:%S')" -EOF +CONFTUN echo -e "${GREEN}Туннель создан! Конфиг: $CONFIG_FILE${NC}" # Создание службы SERVICE_FILE="/etc/systemd/system/ssh-tunnel-${TUNNEL_ID}.service" - cat > "$SERVICE_FILE" << SERVICEEOF + cat > "$SERVICE_FILE" << SERVICETUN [Unit] Description=SSH Tunnel: $TUNNEL_ID After=network-online.target @@ -665,7 +665,7 @@ StandardError=append:/var/log/ssh_tunnel/${TUNNEL_ID}.log [Install] WantedBy=multi-user.target -SERVICEEOF +SERVICETUN systemctl daemon-reload systemctl enable "ssh-tunnel-${TUNNEL_ID}.service" 2>/dev/null @@ -696,7 +696,7 @@ quick_ssh_tunnel() { TUNNEL_ID="ssh_tunnel_${REMOTE_PORT}" CONFIG_FILE="/etc/ssh_tunnel/${TUNNEL_ID}.conf" - cat > "$CONFIG_FILE" << EOF + cat > "$CONFIG_FILE" << CONFFAST TUNNEL_ID="$TUNNEL_ID" VPS_HOST="$VPS_HOST" VPS_PORT="$VPS_PORT" @@ -705,11 +705,11 @@ LOCAL_PORT="$LOCAL_PORT" REMOTE_PORT="$REMOTE_PORT" CREATED="$(date '+%Y-%m-%d %H:%M:%S')" TYPE="ssh" -EOF +CONFFAST SERVICE_FILE="/etc/systemd/system/ssh-tunnel-${TUNNEL_ID}.service" - cat > "$SERVICE_FILE" << SERVICEEOF + cat > "$SERVICE_FILE" << SERVICEFAST [Unit] Description=SSH Tunnel: $TUNNEL_ID After=network-online.target @@ -737,7 +737,7 @@ StandardError=append:/var/log/ssh_tunnel/${TUNNEL_ID}.log [Install] WantedBy=multi-user.target -SERVICEEOF +SERVICEFAST systemctl daemon-reload systemctl enable "ssh-tunnel-${TUNNEL_ID}.service" 2>/dev/null @@ -1243,10 +1243,10 @@ show_menu() { if [ "$0" = "$BASH_SOURCE" ] || [ "$0" = "./manager.sh" ]; then show_menu fi -EOF +EOFMGR # Создание файла с цветами - cat > /opt/ssh_tunnel_manager/colors.sh << 'EOF' + cat > /opt/ssh_tunnel_manager/colors.sh << 'EOFCOLORS' #!/bin/bash # Файл цветов для менеджера туннелей RED='\033[0;31m' @@ -1257,14 +1257,14 @@ CYAN='\033[0;36m' PURPLE='\033[0;35m' NC='\033[0m' BOLD='\033[1m' -EOF +EOFCOLORS # Делаем скрипт исполняемым chmod +x /opt/ssh_tunnel_manager/manager.sh chmod +x /opt/ssh_tunnel_manager/colors.sh # Создание символической ссылки - ln -sf /opt/ssh_tunnel_manager/manager.sh /usr/local/bin/tunnel-manager + ln -sf /opt/ssh_tunnel_manager/manager.sh /usr/local/bin/tunnel-manager 2>/dev/null log_message "Основной скрипт установлен в /opt/ssh_tunnel_manager/" "$GREEN" } @@ -1274,7 +1274,7 @@ setup_systemd_services() { log_message "Настройка systemd служб для автономной работы..." "$CYAN" # Основная служба мониторинга - cat > /etc/systemd/system/tunnel-monitor.service << EOF + cat > /etc/systemd/system/tunnel-monitor.service << EOFSERVICE [Unit] Description=Мониторинг и восстановление SSH туннелей After=network-online.target @@ -1292,10 +1292,10 @@ StandardError=append:/var/log/ssh_tunnel/monitor.log [Install] WantedBy=multi-user.target -EOF +EOFSERVICE # Скрипт мониторинга - cat > /opt/ssh_tunnel_manager/monitor.sh << 'EOF' + cat > /opt/ssh_tunnel_manager/monitor.sh << 'EOFMONITOR' #!/bin/bash # Скрипт мониторинга туннелей @@ -1355,12 +1355,12 @@ while true; do sleep 60 done -EOF +EOFMONITOR chmod +x /opt/ssh_tunnel_manager/monitor.sh # Создание таймера для периодической проверки - cat > /etc/systemd/system/tunnel-check.timer << EOF + cat > /etc/systemd/system/tunnel-check.timer << EOFTIMER [Unit] Description=Периодическая проверка SSH туннелей @@ -1371,10 +1371,10 @@ AccuracySec=1min [Install] WantedBy=timers.target -EOF +EOFTIMER # Включение служб - systemctl daemon-reload + systemctl daemon-reload 2>/dev/null systemctl enable tunnel-monitor.service 2>/dev/null systemctl enable tunnel-check.timer 2>/dev/null systemctl start tunnel-monitor.service 2>/dev/null @@ -1391,7 +1391,7 @@ create_example_tunnel() { safe_read "Создать пример туннеля для SSH (порт 22 -> 10022)? (y/n): " "y" CREATE_EXAMPLE no if [[ "$CREATE_EXAMPLE" =~ ^[Yy]$ ]]; then - cat > /etc/ssh_tunnel/example_ssh.conf << EOF + cat > /etc/ssh_tunnel/example_ssh.conf << EOFEXAMPLE # Пример туннеля для SSH доступа TUNNEL_NAME="example_ssh" VPS_HOST="$VPS_HOST" @@ -1400,10 +1400,10 @@ VPS_USER="$VPS_USER" LOCAL_PORT="22" REMOTE_PORT="10022" ENABLED="true" -EOF +EOFEXAMPLE # Создание службы для примера - cat > /etc/systemd/system/ssh-tunnel-example_ssh.service << EOF + cat > /etc/systemd/system/ssh-tunnel-example_ssh.service << EOFEXSERVICE [Unit] Description=Пример SSH туннеля (22->10022) After=network-online.target @@ -1430,9 +1430,9 @@ StandardError=append:/var/log/ssh_tunnel/example_ssh.log [Install] WantedBy=multi-user.target -EOF +EOFEXSERVICE - systemctl daemon-reload + systemctl daemon-reload 2>/dev/null systemctl enable ssh-tunnel-example_ssh.service 2>/dev/null systemctl start ssh-tunnel-example_ssh.service 2>/dev/null