28 lines
750 B
Bash
28 lines
750 B
Bash
#!/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
|