diff --git a/bot-monitor.sh b/bot-monitor.sh new file mode 100755 index 0000000..5ab280a --- /dev/null +++ b/bot-monitor.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# Мониторинг Домового Бота +# Проверяет каждые 30 секунд и перезапускает если упал + +LOG_FILE="/home/matrixhasyou/domovoy_bot/logs/monitor.log" +WEB_URL="http://localhost:8000" +CHECK_INTERVAL=30 # секунд + +log() { + echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE" +} + +check_bot() { + # Проверяем systemd сервис + if ! sudo systemctl is-active --quiet domovoy-bot; then + log "❌ Бот НЕ активен! Перезапуск..." + sudo systemctl restart domovoy-bot + sleep 5 + if sudo systemctl is-active --quiet domovoy-bot; then + log "✅ Бот перезапущен успешно" + else + log "❌ НЕ удалось перезапустить бота!" + return 1 + fi + fi + + # Проверяем веб-панель + if ! curl -s --max-time 5 "$WEB_URL" > /dev/null; then + log "❌ Веб-панель НЕ отвечает! Перезапуск..." + sudo systemctl restart domovoy-bot + sleep 5 + if curl -s --max-time 5 "$WEB_URL" > /dev/null; then + log "✅ Веб-панель восстановлена" + else + log "❌ Веб-панель НЕ восстановилась!" + return 1 + fi + fi + + return 0 +} + +log "🚀 Запуск мониторинга Домового Бота (интервал: ${CHECK_INTERVAL}с)" + +while true; do + check_bot + sleep $CHECK_INTERVAL +done diff --git a/domovoy-monitor.service b/domovoy-monitor.service new file mode 100644 index 0000000..b93820b --- /dev/null +++ b/domovoy-monitor.service @@ -0,0 +1,21 @@ +[Unit] +Description=Domovoy Bot Monitor - Auto-restart service +After=network.target domovoy-bot.service + +[Service] +Type=simple +User=matrixhasyou +Group=matrixhasyou +WorkingDirectory=/home/matrixhasyou/domovoy_bot +ExecStart=/bin/bash /home/matrixhasyou/domovoy_bot/bot-monitor.sh +Restart=always +RestartSec=10 +StandardOutput=append:/home/matrixhasyou/domovoy_bot/logs/monitor.log +StandardError=append:/home/matrixhasyou/domovoy_bot/logs/monitor.log + +# Security +NoNewPrivileges=true +PrivateTmp=true + +[Install] +WantedBy=multi-user.target