Files
FranciaOcupada/monitor-deploy.sh
Resistencia Dev fc6bc1ab54
Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 7s
Afegit botó per ocultar/mostrar els jugadors
2025-12-14 22:06:47 +01:00

132 lines
3.8 KiB
Bash
Executable File

#!/bin/bash
# Script de monitoreo para el despliegue de Francia Ocupada
# Uso: ./monitor-deploy.sh
echo "🔍 Monitor de Despliegue - Francia Ocupada"
echo "=========================================="
echo ""
# Colores para output
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Función para verificar estado de contenedores
check_containers() {
echo -e "${YELLOW}📦 Estado de Contenedores:${NC}"
docker compose -f docker-compose_prod.yml ps
echo ""
}
# Función para verificar logs
check_logs() {
echo -e "${YELLOW}📋 Logs Recientes (últimas 20 líneas):${NC}"
echo ""
echo "--- CLIENT ---"
docker compose -f docker-compose_prod.yml logs --tail=20 client 2>/dev/null || echo "Cliente no disponible"
echo ""
echo "--- SERVER ---"
docker compose -f docker-compose_prod.yml logs --tail=20 server 2>/dev/null || echo "Servidor no disponible"
echo ""
}
# Función para verificar conectividad
check_connectivity() {
echo -e "${YELLOW}🌐 Verificación de Conectividad:${NC}"
# Verificar puerto 3000 (cliente)
if nc -z localhost 3000 2>/dev/null; then
echo -e "${GREEN}✅ Puerto 3000 (Cliente): ABIERTO${NC}"
else
echo -e "${RED}❌ Puerto 3000 (Cliente): CERRADO${NC}"
fi
# Verificar puerto 4000 (servidor)
if nc -z localhost 4000 2>/dev/null; then
echo -e "${GREEN}✅ Puerto 4000 (Servidor): ABIERTO${NC}"
else
echo -e "${RED}❌ Puerto 4000 (Servidor): CERRADO${NC}"
fi
# Verificar puerto 5432 (base de datos)
if nc -z localhost 5432 2>/dev/null; then
echo -e "${GREEN}✅ Puerto 5432 (Base de Datos): ABIERTO${NC}"
else
echo -e "${RED}❌ Puerto 5432 (Base de Datos): CERRADO${NC}"
fi
echo ""
}
# Función para verificar uso de recursos
check_resources() {
echo -e "${YELLOW}💻 Uso de Recursos:${NC}"
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" \
$(docker compose -f docker-compose_prod.yml ps -q 2>/dev/null) 2>/dev/null || echo "No hay contenedores corriendo"
echo ""
}
# Menú principal
while true; do
echo ""
echo "Selecciona una opción:"
echo "1) Ver estado de contenedores"
echo "2) Ver logs recientes"
echo "3) Verificar conectividad"
echo "4) Ver uso de recursos"
echo "5) Monitoreo completo"
echo "6) Logs en tiempo real (Ctrl+C para salir)"
echo "7) Reiniciar servicios"
echo "8) Detener servicios"
echo "9) Salir"
echo ""
read -p "Opción: " option
case $option in
1)
check_containers
;;
2)
check_logs
;;
3)
check_connectivity
;;
4)
check_resources
;;
5)
check_containers
check_connectivity
check_resources
check_logs
;;
6)
echo "📡 Logs en tiempo real (Ctrl+C para detener)..."
docker compose -f docker-compose_prod.yml logs -f
;;
7)
echo "🔄 Reiniciando servicios..."
docker compose -f docker-compose_prod.yml restart
echo -e "${GREEN}✅ Servicios reiniciados${NC}"
;;
8)
read -p "¿Estás seguro de que quieres detener los servicios? (s/n): " confirm
if [ "$confirm" = "s" ]; then
echo "🛑 Deteniendo servicios..."
docker compose -f docker-compose_prod.yml down
echo -e "${GREEN}✅ Servicios detenidos${NC}"
fi
;;
9)
echo "👋 ¡Hasta luego!"
exit 0
;;
*)
echo -e "${RED}❌ Opción inválida${NC}"
;;
esac
done