Files
xinghuoapi/scripts/check_status.sh
huangzhenpc d46653b2c2
Some checks failed
CI / test (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
Security Scan / backend-security (push) Has been cancelled
Security Scan / frontend-security (push) Has been cancelled
添加上游同步自动化工具
新增工具脚本:
- scripts/sync-upstream.sh: 主同步脚本,自动从上游拉取并应用配置
- scripts/apply-branding.sh: 自动应用StarFireAPI品牌化修改
- scripts/apply-deploy-config.sh: 自动应用部署配置
- scripts/README.md: 工具使用说明

功能特性:
 自动备份当前分支
 从上游仓库拉取最新代码
 自动应用品牌化修改(Sub2API → StarFireAPI)
 自动应用部署配置(端口、Redis、镜像等)
 智能提示和确认
 支持回滚操作

使用方法:
chmod +x scripts/*.sh
./scripts/sync-upstream.sh

修改 .gitignore 以允许追踪自定义同步工具

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 01:42:21 +08:00

111 lines
3.2 KiB
Bash
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
# 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 ""