草稿 · 2022年5月1日 0

草稿:检查服务端口

#!/usr/bin/env bash

times=5 # 定义失败次数
SERVER=baidu.com # 检测的SERVER
PORT=81  # 检测SERVER 的端口

message="${SERVER}: ${PORT}端口不通"
test_link(){
    # 测试端口连接函数

    fails=0 # 定义失败初始值为0

    # 循环重试次数检查次数
    for t in $(seq ${times})
    do
    sleep 0.2
        # 执行timeout命令 获取环境变量的 $? 来获取是否成功,$? 等于 0 则成功
        code=$(timeout 0.2 bash -c "cat </dev/null>/dev/tcp/${SERVER}/${PORT}" && \
        echo $?||echo $?)
        if [ ${code} != 0 ];then
            fails=$((${fails} + 1)) # 测试端口失败后 失败次数加1
        fi
        if [ ${fails} -gt 3 ];then  # 失败次数 超过三次报警
            echo ${message}
            exit 0
        fi
    done
}
test_link