фича: добавлен пункт 'Проверка VPS' (Health Check) для мониторинга SSL и Nginx
This commit is contained in:
parent
3770143aee
commit
e21d37a3e7
85
rproxy
85
rproxy
|
|
@ -3,7 +3,7 @@
|
|||
# Публикация локальных сервисов через SSH-туннели + nginx на VPS
|
||||
# http://5.104.75.50:3000/Petro1990/rProxy
|
||||
|
||||
VERSION="1.0.3"
|
||||
VERSION="1.0.4"
|
||||
CONF_DIR="/opt/etc/rproxy"
|
||||
CONF_FILE="$CONF_DIR/rproxy.conf"
|
||||
SERVICES_DIR="$CONF_DIR/services"
|
||||
|
|
@ -171,27 +171,29 @@ main_menu() {
|
|||
draw_separator
|
||||
printf " ${BOLD}4)${NC} ▶️ Запустить туннель\n"
|
||||
printf " ${BOLD}5)${NC} ⏹️ Остановить туннель\n"
|
||||
printf " ${CYAN}${BOLD}6)${NC} 🔄 Перезапустить туннель\n"
|
||||
draw_separator
|
||||
printf " ${BOLD}7)${NC} 🔒 Получить/Обновить SSL (Certbot)\n"
|
||||
printf " ${BOLD}8)${NC} ⚙️ Настройки VPS\n"
|
||||
printf " ${BOLD}9)${NC} 🚀 Обновить rProxy\n"
|
||||
printf " ${BOLD}0)${NC} 🚪 Выход\n"
|
||||
printf " ${BOLD}6)${NC} 🔄 Перезапустить туннель\n"
|
||||
draw_separator
|
||||
printf " ${BOLD}7)${NC} 🔒 Получить/Обновить SSL (Certbot)\n"
|
||||
printf " ${BOLD}8)${NC} ⚙️ Настройки VPS\n"
|
||||
printf " ${BOLD}9)${NC} 🚀 Обновить rProxy\n"
|
||||
printf " ${BOLD}10)${NC} 🏥 Проверка VPS (Health)\n"
|
||||
printf " ${BOLD}0)${NC} 🚪 Выход\n"
|
||||
|
||||
prompt "Выберите действие: "
|
||||
prompt "Выберите действие: "
|
||||
|
||||
case "$REPLY" in
|
||||
1) show_status ;;
|
||||
2) do_add_interactive ;;
|
||||
3) do_remove_interactive ;;
|
||||
4) do_start_interactive ;;
|
||||
5) do_stop_interactive ;;
|
||||
6) do_restart_interactive ;;
|
||||
7) do_ssl_interactive ;;
|
||||
8) do_setup ;;
|
||||
9) do_self_update ;;
|
||||
0|q) clear_screen; exit 0 ;;
|
||||
*) ;;
|
||||
case "$REPLY" in
|
||||
1) show_status ;;
|
||||
2) do_add_interactive ;;
|
||||
3) do_remove_interactive ;;
|
||||
4) do_start_interactive ;;
|
||||
5) do_stop_interactive ;;
|
||||
6) do_restart_interactive ;;
|
||||
7) do_ssl_interactive ;;
|
||||
8) do_setup ;;
|
||||
9) do_self_update ;;
|
||||
10) do_health_check ;;
|
||||
0|q) clear_screen; exit 0 ;;
|
||||
*) ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
|
@ -505,6 +507,49 @@ do_self_update() {
|
|||
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