如何进行端口的探活-Windows服务器和Linux服务器批量一键探活方案

233 阅读1分钟

日常工作中,有些ACL不知道何时过期了,或网络增加了限制等原因,导致我们系统由于网络访问的原因突然无法使用,为了避免”灾难“发生,我们可以通过技术手段,将我们要检查的服务器IP收集起来,批量一键探活。

本文将分别使用常见的Linux服务进行探活,同时附带Windows服务器的示例脚本。

1 要探活的IP维护文件

10.44.52.71:443
10.57.24.13:443
10.57.24.13:80
10.57.24.13:8080

2 Linux服务器通过如下脚本一键批量探活

#!/bin/bash
check_telnet(){
for ip_port in $(cat ip_list|grep -v '^#')
do
    CHECK_PORT=$(echo $ip_port|awk -F: '{print $2}')
    CHECK_IP=$(echo $ip_port|awk -F: '{print $1}')
    CURRENT_DATE=$(date +"%Y/%m/%d %H:%M:%S")
    echo -e "\n" | telnet $CHECK_IP $CHECK_PORT |grep "Connected to\|Escape character" >/dev/null
    if [ $? -eq 0 ];then
        echo "$CURRENT_DATE $CHECK_IP $CHECK_PORT connected" >> result_success.log
    else
        echo "$CURRENT_DATE $CHECK_IP $CHECK_PORT can not connected" >> result_err.log
    fi
done
}
#check_telnet >> result.log
check_telnet

3 Windows服务器通过如下脚本一键批量探活

@echo off

setlocal enabledelayedexpansion

set ip_list= type ip_list
for %%i in (%ip_list%) do (
    set "ip=!ip! %%~i"
    set /a "count+=1"
    if !count! equ 2 (
        start cmd /k "title Telnet Test for IP !ip! && echo Testing IP !ip!... && telnet -a !ip!"
        set "ip="
        set /a "count=0"
    )
)
if defined ip (
    start cmd /k "title Telnet Test for IP !ip! && echo Testing IP !ip!... && telnet -a !ip!"
)