通用健康检查脚本
参数
- 探活地址/健康检查地址
- 检查次数(代码中固定每次检测间隔为 2s)
调用
其它文件引用,以文件名为 health_check.sh
为例:
bash
# 引入
source ./health_check.sh
# 调用
health_check "http://$IP:8000/v1" 30
代码
bash
#!/bin/bash
health_check() {
health_check_url=$1
check_times=$2
exptime=0
echo -e "\n健康检查地址:${health_check_url}"
while true
do
status_code=`/usr/bin/curl -L -o /dev/null --connect-timeout 5 -s -w %{http_code} ${health_check_url}`
if [[ $? -ne 0 ]]; then
echo -n -e "\r健康检查执行失败"
else
echo "code is $status_code"
if [[ "$status_code" == "200" ]]; then
echo '健康检查成功'
break
fi
fi
sleep 2
((exptime++))
echo -e "\r第 $exptime 次执行健康检查"
if [[ $exptime -gt ${check_times} ]]; then
echo '健康检查失败,超过最大检测次数'
exit 1
fi
done
}