#!/bin/bash # StarFireAPI 服务状态检查脚本 # 用途:快速检查服务运行状态和健康度 # 使用:bash check_status.sh # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # 项目目录 PROJECT_DIR="/opt/xinghuoapi/deploy" echo -e "${BLUE}==========================================" echo "📊 StarFireAPI 服务状态检查" echo -e "==========================================${NC}" echo "" # 检查目录 if [ ! -d "$PROJECT_DIR" ]; then echo -e "${RED}❌ 错误: 项目目录 $PROJECT_DIR 不存在${NC}" exit 1 fi cd "$PROJECT_DIR" # 1. 容器状态 echo -e "${YELLOW}🐳 容器状态:${NC}" docker-compose ps echo "" # 2. 服务健康检查 echo -e "${YELLOW}🏥 服务健康检查:${NC}" # 检查 sub2api 容器 if docker-compose ps | grep -q "sub2api.*Up"; then echo -e "${GREEN}✓ sub2api 容器运行中${NC}" # 检查端口 if netstat -tlnp 2>/dev/null | grep -q ":6580"; then echo -e "${GREEN}✓ 端口 6580 已监听${NC}" else echo -e "${RED}✗ 端口 6580 未监听${NC}" fi # 检查 HTTP 响应 if curl -s -o /dev/null -w "%{http_code}" http://localhost:6580 | grep -q "200\|301\|302"; then echo -e "${GREEN}✓ HTTP 服务正常响应${NC}" else echo -e "${RED}✗ HTTP 服务无响应${NC}" fi else echo -e "${RED}✗ sub2api 容器未运行${NC}" fi # 检查 postgres 容器 if docker-compose ps | grep -q "postgres.*Up"; then echo -e "${GREEN}✓ PostgreSQL 容器运行中${NC}" else echo -e "${RED}✗ PostgreSQL 容器未运行${NC}" fi echo "" # 3. 资源使用情况 echo -e "${YELLOW}💾 资源使用情况:${NC}" docker stats --no-stream sub2api sub2api-postgres 2>/dev/null || echo "无法获取资源使用情况" echo "" # 4. 最近日志(最后 20 行) echo -e "${YELLOW}📝 最近日志 (最后 20 行):${NC}" docker-compose logs --tail 20 sub2api echo "" # 5. 错误日志检查 echo -e "${YELLOW}⚠️ 错误日志检查:${NC}" ERROR_COUNT=$(docker-compose logs --tail 100 sub2api 2>/dev/null | grep -i "error\|fatal\|panic" | wc -l) if [ "$ERROR_COUNT" -gt 0 ]; then echo -e "${RED}发现 $ERROR_COUNT 条错误日志${NC}" echo "最近的错误:" docker-compose logs --tail 100 sub2api | grep -i "error\|fatal\|panic" | tail -5 else echo -e "${GREEN}✓ 未发现错误日志${NC}" fi echo "" # 6. 版本信息 echo -e "${YELLOW}📌 版本信息:${NC}" VERSION=$(cat ../backend/cmd/server/VERSION 2>/dev/null || echo "未知") echo "当前版本: $VERSION" echo "最新提交: $(cd .. && git log --oneline -1)" echo "" # 7. 使用的镜像 echo -e "${YELLOW}🖼️ 使用的镜像:${NC}" docker-compose ps -q sub2api | xargs docker inspect --format='{{.Config.Image}}' 2>/dev/null || echo "无法获取镜像信息" echo "" # 8. 快速操作提示 echo -e "${BLUE}==========================================" echo "🔧 快速操作命令" echo -e "==========================================${NC}" echo "查看实时日志: docker-compose logs -f sub2api" echo "重启服务: docker-compose restart sub2api" echo "停止服务: docker-compose down" echo "启动服务: docker-compose up -d" echo "进入容器: docker exec -it sub2api sh" echo ""