#!/bin/bash # OpenCode 健康检查脚本 # 每5分钟执行一次,检查 OpenCode 服务状态 echo "🔍 $(date '+%Y-%m-%d %H:%M:%S') - 开始执行 OpenCode 健康检查" # 获取 OpenCode 服务地址 GATEWAY_HOST=${GATEWAY_HOST:-127.0.0.1} GATEWAY_PORT=${GATEWAY_PORT:-3000} OPENCODE_URL="http://${GATEWAY_HOST}:${GATEWAY_PORT}" # 执行健康检查 HEALTH_RESPONSE=$(curl -s --max-time 10 --connect-timeout 5 "${OPENCODE_URL}/global/health" 2>/dev/null) HEALTH_STATUS=$? if [ $HEALTH_STATUS -eq 0 ]; then # 解析响应中的状态 if echo "$HEALTH_RESPONSE" | grep -q '"healthy":true'; then VERSION=$(echo "$HEALTH_RESPONSE" | grep -o '"version":"[^"]*' | cut -d'"' -f4) echo "✅ $(date '+%Y-%m-%d %H:%M:%S') - OpenCode 健康检查成功: v${VERSION}" else echo "⚠️ $(date '+%Y-%m-%d %H:%M:%S') - OpenCode 响应异常: $HEALTH_RESPONSE" fi else echo "❌ $(date '+%Y-%m-%d %H:%M:%S') - OpenCode 健康检查失败: curl exit code $HEALTH_STATUS" # 可选:如果健康检查失败,可以尝试重启服务或发送告警 # 这里只是记录错误,不执行重启操作,避免意外中断服务 fi echo "🏁 $(date '+%Y-%m-%d %H:%M:%S') - 健康检查完成" echo "---"