uploader-bot/monitor_deployment.sh

126 lines
5.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# MY Network Bootstrap Deployment Monitor
# Скрипт для наблюдения за процессом развертывания
echo "🚀 MY Network Bootstrap Deployment Monitor"
echo "=========================================="
echo "Сервер: 2.58.65.188"
echo "Домен: my-public-node-3.projscale.dev"
echo "Время запуска: $(date)"
echo ""
while true; do
clear
echo "🚀 MY Network Bootstrap - Live Monitor"
echo "====================================="
echo "$(date '+%H:%M:%S') | Обновляется каждые 30 секунд"
echo ""
# Проверка локальных процессов
echo "📡 Локальные процессы:"
SCP_COUNT=$(ps aux | grep 'scp.*auto_deploy.sh' | grep -v grep | wc -l | tr -d ' ')
SSH_COUNT=$(ps aux | grep 'auto_ssh_deploy.exp' | grep -v grep | wc -l | tr -d ' ')
if [[ $SCP_COUNT -gt 0 ]]; then
echo " ✅ SCP Transfer: Активен (передача файлов)"
else
echo " ✅ SCP Transfer: Завершен"
fi
if [[ $SSH_COUNT -gt 0 ]]; then
echo " 🔄 SSH Deploy: Активен (установка на сервере)"
else
echo " ⚠️ SSH Deploy: Завершен или прерван"
fi
echo ""
# Проверка доступности домена
echo "🌐 Проверка домена:"
DOMAIN_STATUS=$(curl -s --connect-timeout 3 -o /dev/null -w "%{http_code}" https://my-public-node-3.projscale.dev/api/my/health 2>/dev/null || echo "TIMEOUT")
case $DOMAIN_STATUS in
"200")
echo " ✅ API доступен: https://my-public-node-3.projscale.dev/api/my/health"
echo " 🎉 РАЗВЕРТЫВАНИЕ ЗАВЕРШЕНО УСПЕШНО!"
;;
"521")
echo " ⏳ Error 521: Сервер недоступен (установка в процессе)"
;;
"522")
echo " ⏳ Error 522: Connection timeout (сервис запускается)"
;;
"TIMEOUT")
echo " ⏳ Timeout: Проверяем соединение..."
;;
*)
echo " ⚠️ HTTP $DOMAIN_STATUS: Проверяем статус..."
;;
esac
echo ""
# Проверка прямого подключения к серверу
echo "🔍 Проверка сервера:"
SERVER_PING=$(ping -c 1 -W 1000 2.58.65.188 2>/dev/null | grep "1 received" | wc -l | tr -d ' ')
if [[ $SERVER_PING -gt 0 ]]; then
echo " ✅ Сервер 2.58.65.188 доступен"
else
echo " ⚠️ Сервер 2.58.65.188 недоступен"
fi
# Попытка проверить порты
echo ""
echo "🔌 Проверка портов:"
# Проверяем SSH (22)
SSH_CHECK=$(timeout 3 bash -c "</dev/tcp/2.58.65.188/22" 2>/dev/null && echo "open" || echo "closed")
echo " SSH (22): $SSH_CHECK"
# Проверяем HTTP (80)
HTTP_CHECK=$(timeout 3 bash -c "</dev/tcp/2.58.65.188/80" 2>/dev/null && echo "open" || echo "closed")
echo " HTTP (80): $HTTP_CHECK"
# Проверяем HTTPS (443)
HTTPS_CHECK=$(timeout 3 bash -c "</dev/tcp/2.58.65.188/443" 2>/dev/null && echo "open" || echo "closed")
echo " HTTPS (443): $HTTPS_CHECK"
echo ""
echo "📊 Статус развертывания:"
if [[ $DOMAIN_STATUS == "200" ]]; then
echo " 🎯 Статус: ЗАВЕРШЕНО"
echo " ✅ MY Network Bootstrap Node готов к работе!"
echo ""
echo "🔗 Доступные endpoints:"
echo " • Health: https://my-public-node-3.projscale.dev/api/my/health"
echo " • Node Info: https://my-public-node-3.projscale.dev/api/my/node/info"
echo " • Bootstrap: https://my-public-node-3.projscale.dev/api/my/bootstrap/config"
echo ""
echo "🎉 Развертывание успешно завершено!"
break
elif [[ $SSH_COUNT -gt 0 ]]; then
echo " 🔄 Статус: В ПРОЦЕССЕ"
echo " ⏳ Установка компонентов на сервере..."
if [[ $HTTPS_CHECK == "open" ]]; then
echo " ✅ Порт 443 открыт - nginx работает"
fi
elif [[ $SCP_COUNT -gt 0 ]]; then
echo " 📤 Статус: ПЕРЕДАЧА ФАЙЛОВ"
echo " ⏳ Копирование скриптов на сервер..."
else
echo " ⚠️ Статус: НЕИЗВЕСТНО"
echo " 🔍 Проверьте терминалы или перезапустите развертывание"
fi
echo ""
echo "💡 Для детального мониторинга:"
echo " Terminal 1: SCP процесс"
echo " Terminal 2: SSH развертывание"
echo ""
echo "⏹️ Нажмите Ctrl+C для выхода"
echo "🔄 Следующее обновление через 30 секунд..."
sleep 30
done