Files
Work-configuration-file/jenkins/流水线配置/go_中转服务/check_port.sh

28 lines
750 B
Bash
Raw Normal View History

2025-10-13 11:05:51 +08:00
#!/bin/bash
#
# 检查本地端口是否在指定超时时间内变为可用
# 用法: ./check_port.sh <port> [timeout]
# 例如: ./check_port.sh 8000 60
#
PORT=${1:-8000}
TIMEOUT=${2:-60}
INTERVAL=5
START_TIME=$(date +%s)
END_TIME=$((START_TIME + TIMEOUT))
echo "开始检测: 端口 $PORT,超时时间 ${TIMEOUT}s每次间隔 ${INTERVAL}s"
while [ $(date +%s) -lt $END_TIME ]; do
if nc -z -w1 localhost "$PORT" 2>/dev/null; then
echo "[$(date '+%F %T')] ✅ 端口 $PORT 已启用"
exit 0
else
echo "[$(date '+%F %T')] ⏳ 端口 $PORT 尚为启动用,等待 ${INTERVAL}s..."
sleep $INTERVAL
fi
done
echo "[$(date '+%F %T')] ❌ 超时: 端口 $PORT${TIMEOUT}s 内未变为启用"
exit 1