监控端口存活状态

#!/bin/bash

# 监控端口存活状态,也就是监控一个服务

# 监控方法
    # 通过systemctl service  服务启动状态
    # lsof 查看端口是否存在
    # 查看进程
# 上面这些都会出现服务假死状态,包括压力过大无法响应 

# 测试端口是否有响应
    # 使用telnet命令

# 检查端口是否存活
set -x
port_status() {
    # 创建临时文件
    temp_file=`mktemp port_status.XXX`

    # 判断telnet是否存在 
    # 在使用if进行判断的时候,if是根据退出状态进行判断的
    if ! command -v telnet &>/dev/null;then
        echo "telnet: command not found"
        exit 1
    fi
 
    # 测试端口 $1 IP $2 port  EOF 用于输入
    ( telnet $1 $2 << EOF 
    quit 
EOF
) &>$temp_file
    
    # 分析文件内容,判断结果
    if egrep "\^]" $temp_file &>/dev/null;then
        echo "$1 $2 is open"
    else
        echo "$1 $2 is down"
    fi
    echo $temp_file
    rm -f $temp_file
}

port_status $1 $2
set +x
posted @ 2021-10-10 23:06  Myuniverse  阅读(352)  评论(0编辑  收藏  举报