v1.5.2
Исправления в этой версии:
Исправлены все ошибки с EOF - использованы разные метки для вложенных EOF (EOFMGR, EOFCOLORS, EOFSERVICE, EOFMONITOR, EOFTIMER, EOFEXAMPLE, EOFEXSERVICE)
Убраны конфликтующие метки - каждая вложенная конструкция << имеет уникальную метку
Исправлена проблема с созданием файлов - все файлы создаются корректно, включая /opt/ssh_tunnel_manager/colors.sh
Убраны синтаксические ошибки - скрипт теперь компилируется без ошибок
Добавлена проверка на существование директорий перед созданием файлов
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user