diff --git a/rproxy b/rproxy index d46a5a6..9f50650 100644 --- a/rproxy +++ b/rproxy @@ -3,7 +3,7 @@ # Публикация локальных сервисов через SSH-туннели + nginx на VPS # http://5.104.75.50:3000/Petro1990/rProxy -VERSION="1.1.0" +VERSION="1.1.1" CONF_DIR="/opt/etc/rproxy" CONF_FILE="$CONF_DIR/rproxy.conf" SERVICES_DIR="$CONF_DIR/services" @@ -57,9 +57,14 @@ check_conf() { return 1 fi . "$CONF_FILE" - # Для работы нужно, чтобы был хотя бы один VPS профиль - [ "$(ls -A "$VPS_DIR" 2>/dev/null)" ] || return 1 - return 0 + # Строгая проверка: ищем хотя бы один файл в vps/, в котором заполнена переменная VPS_HOST + for f in "$VPS_DIR"/*.conf; do + [ -f "$f" ] || continue + if grep -q "VPS_HOST=\"[0-9]" "$f"; then + return 0 + fi + done + return 1 } load_service() { @@ -94,13 +99,13 @@ load_vps() { migrate_config() { mkdir -p "$VPS_DIR" "$SERVICES_DIR" "$PID_DIR" - # Проверка на "битый" (пустой) конфиг после неудачной миграции (1.0.7-1.0.8) + # Проверка на "битый" (пустой) конфиг после неудачной миграции (1.0.7-1.1.0) local broken=0 [ -f "$VPS_DIR/default.conf" ] && ! grep -q "VPS_HOST=\"[0-9]" "$VPS_DIR/default.conf" && broken=1 if [ -f "$CONF_FILE" ] && { [ ! -f "$VPS_DIR/default.conf" ] || [ "$broken" -eq 1 ]; }; then # Если rproxy.conf ещё содержит данные серверов (не пустой) - if grep -q "VPS_HOST=" "$CONF_FILE"; then + if grep -q "VPS_HOST=\"[0-9]" "$CONF_FILE"; then msg "Восстановление конфигурации VPS..." . "$CONF_FILE" cat > "$VPS_DIR/default.conf" <