Initial commit
This commit is contained in:
76
skills/toolkit/bash/system/check-service.sh
Normal file
76
skills/toolkit/bash/system/check-service.sh
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
# Service Health Checker
|
||||
# 检查服务健康状态,支持HTTP、数据库、Redis
|
||||
|
||||
set -e
|
||||
|
||||
SERVICE_NAME="${1:-auth-service}"
|
||||
CHECK_TYPE="${2:-http}"
|
||||
TIMEOUT="${3:-5}"
|
||||
|
||||
echo "🔍 检查服务健康状态"
|
||||
echo "服务: $SERVICE_NAME"
|
||||
echo "检查类型: $CHECK_TYPE"
|
||||
echo "超时: ${TIMEOUT}s"
|
||||
echo "=========================================="
|
||||
|
||||
case $CHECK_TYPE in
|
||||
http)
|
||||
# HTTP健康检查
|
||||
URL="http://localhost:3000/health"
|
||||
STATUS=$(curl -s -o /dev/null -w "%{http_code}" --max-time "$TIMEOUT" "$URL" 2>/dev/null || echo "000")
|
||||
|
||||
if [ "$STATUS" = "200" ]; then
|
||||
echo "✅ HTTP服务正常 (状态码: 200)"
|
||||
curl -s --max-time 2 "$URL" | jq '.' 2>/dev/null || echo " (无法解析JSON响应)"
|
||||
else
|
||||
echo "❌ HTTP服务异常 (状态码: $STATUS)"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
db|database)
|
||||
# 数据库连接检查
|
||||
if [ -f ".env" ]; then
|
||||
source .env
|
||||
fi
|
||||
|
||||
DB_HOST="${DB_HOST:-localhost}"
|
||||
DB_PORT="${DB_PORT:-5432}"
|
||||
DB_NAME="${DB_NAME:-myapp}"
|
||||
DB_USER="${DB_USER:-postgres}"
|
||||
|
||||
if pg_isready -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -t "$TIMEOUT" >/dev/null 2>&1; then
|
||||
echo "✅ 数据库连接正常"
|
||||
echo " Host: $DB_HOST:$DB_PORT"
|
||||
echo " Database: $DB_NAME"
|
||||
else
|
||||
echo "❌ 数据库连接失败"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
redis)
|
||||
# Redis连接检查
|
||||
REDIS_HOST="${REDIS_HOST:-localhost}"
|
||||
REDIS_PORT="${REDIS_PORT:-6379}"
|
||||
|
||||
if redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" ping >/dev/null 2>&1; then
|
||||
echo "✅ Redis连接正常"
|
||||
echo " Host: $REDIS_HOST:$REDIS_PORT"
|
||||
else
|
||||
echo "❌ Redis连接失败"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "❌ 未知的检查类型: $CHECK_TYPE"
|
||||
echo "支持的类型: http, db, redis"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "=========================================="
|
||||
echo "✅ 所有检查通过"
|
||||
exit 0
|
||||
Reference in New Issue
Block a user