фича: добавлен пункт 'Проверка VPS' (Health Check) для мониторинга SSL и Nginx
This commit is contained in:
parent
3770143aee
commit
e21d37a3e7
49
rproxy
49
rproxy
|
|
@ -3,7 +3,7 @@
|
||||||
# Публикация локальных сервисов через SSH-туннели + nginx на VPS
|
# Публикация локальных сервисов через SSH-туннели + nginx на VPS
|
||||||
# http://5.104.75.50:3000/Petro1990/rProxy
|
# http://5.104.75.50:3000/Petro1990/rProxy
|
||||||
|
|
||||||
VERSION="1.0.3"
|
VERSION="1.0.4"
|
||||||
CONF_DIR="/opt/etc/rproxy"
|
CONF_DIR="/opt/etc/rproxy"
|
||||||
CONF_FILE="$CONF_DIR/rproxy.conf"
|
CONF_FILE="$CONF_DIR/rproxy.conf"
|
||||||
SERVICES_DIR="$CONF_DIR/services"
|
SERVICES_DIR="$CONF_DIR/services"
|
||||||
|
|
@ -171,11 +171,12 @@ main_menu() {
|
||||||
draw_separator
|
draw_separator
|
||||||
printf " ${BOLD}4)${NC} ▶️ Запустить туннель\n"
|
printf " ${BOLD}4)${NC} ▶️ Запустить туннель\n"
|
||||||
printf " ${BOLD}5)${NC} ⏹️ Остановить туннель\n"
|
printf " ${BOLD}5)${NC} ⏹️ Остановить туннель\n"
|
||||||
printf " ${CYAN}${BOLD}6)${NC} 🔄 Перезапустить туннель\n"
|
printf " ${BOLD}6)${NC} 🔄 Перезапустить туннель\n"
|
||||||
draw_separator
|
draw_separator
|
||||||
printf " ${BOLD}7)${NC} 🔒 Получить/Обновить SSL (Certbot)\n"
|
printf " ${BOLD}7)${NC} 🔒 Получить/Обновить SSL (Certbot)\n"
|
||||||
printf " ${BOLD}8)${NC} ⚙️ Настройки VPS\n"
|
printf " ${BOLD}8)${NC} ⚙️ Настройки VPS\n"
|
||||||
printf " ${BOLD}9)${NC} 🚀 Обновить rProxy\n"
|
printf " ${BOLD}9)${NC} 🚀 Обновить rProxy\n"
|
||||||
|
printf " ${BOLD}10)${NC} 🏥 Проверка VPS (Health)\n"
|
||||||
printf " ${BOLD}0)${NC} 🚪 Выход\n"
|
printf " ${BOLD}0)${NC} 🚪 Выход\n"
|
||||||
|
|
||||||
prompt "Выберите действие: "
|
prompt "Выберите действие: "
|
||||||
|
|
@ -190,6 +191,7 @@ main_menu() {
|
||||||
7) do_ssl_interactive ;;
|
7) do_ssl_interactive ;;
|
||||||
8) do_setup ;;
|
8) do_setup ;;
|
||||||
9) do_self_update ;;
|
9) do_self_update ;;
|
||||||
|
10) do_health_check ;;
|
||||||
0|q) clear_screen; exit 0 ;;
|
0|q) clear_screen; exit 0 ;;
|
||||||
*) ;;
|
*) ;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -505,6 +507,49 @@ do_self_update() {
|
||||||
pause
|
pause
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ══════════════════════════════════════════════════════════════════════
|
||||||
|
# ПРОВЕРКА СОСТОЯНИЯ VPS
|
||||||
|
# ══════════════════════════════════════════════════════════════════════
|
||||||
|
do_health_check() {
|
||||||
|
clear_screen
|
||||||
|
draw_box "Состояние VPS и SSL"
|
||||||
|
printf "\n"
|
||||||
|
|
||||||
|
msg "Проверяю Nginx..."
|
||||||
|
if ssh_cmd "systemctl is-active nginx >/dev/null 2>&1"; then
|
||||||
|
printf " Nginx: ${GREEN}${BOLD}Запущен${NC}\n"
|
||||||
|
else
|
||||||
|
printf " Nginx: ${RED}${BOLD}Остановлен${NC}\n"
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg "Проверяю автопродление SSL (Certbot)..."
|
||||||
|
local timer=$(ssh_cmd "systemctl is-active certbot.timer 2>/dev/null | tr -d '\r'")
|
||||||
|
if [ "$timer" = "active" ]; then
|
||||||
|
printf " SSL Timer: ${GREEN}${BOLD}Активен (Systemd)${NC}\n"
|
||||||
|
local next_run=$(ssh_cmd "systemctl list-timers certbot.timer --no-legend 2>/dev/null | awk '{print \$1, \$2}'" | head -n 1)
|
||||||
|
[ -n "$next_run" ] && printf " Следующее: $next_run\n"
|
||||||
|
else
|
||||||
|
# Проверка cron
|
||||||
|
if ssh_cmd "crontab -l 2>/dev/null | grep -q certbot"; then
|
||||||
|
printf " SSL Renewal: ${GREEN}${BOLD}Настроено (Cron)${NC}\n"
|
||||||
|
else
|
||||||
|
printf " SSL Renewal: ${RED}${BOLD}Не обнаружено${NC}\n"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg "Действующие сертификаты:"
|
||||||
|
ssh_cmd "certbot certificates 2>/dev/null | grep -E 'Expiry Date:|Domains:'" | while read -r line; do
|
||||||
|
printf " %s\n" "$line"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n"
|
||||||
|
msg "Утилиты на роутере:"
|
||||||
|
[ -x "/opt/bin/ssh" ] && printf " SSH: ${GREEN}Entware OK${NC}\n" || printf " SSH: ${RED}Missing${NC}\n"
|
||||||
|
[ -x "/opt/bin/autossh" ] && printf " AutoSSH: ${GREEN}OK${NC}\n" || printf " AutoSSH: ${RED}Missing${NC}\n"
|
||||||
|
|
||||||
|
pause
|
||||||
|
}
|
||||||
|
|
||||||
# ══════════════════════════════════════════════════════════════════════
|
# ══════════════════════════════════════════════════════════════════════
|
||||||
# УДАЛИТЬ СЕРВИС (интерактивно)
|
# УДАЛИТЬ СЕРВИС (интерактивно)
|
||||||
# ══════════════════════════════════════════════════════════════════════
|
# ══════════════════════════════════════════════════════════════════════
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue