自己写的一个批处理作为nagios的插件来应用,用来检查业务是否正常运行(通过查看本机端口来判断),此脚本过滤了外部链接里的端口,记录下来,方便以后查找,:)
@echo off setlocal enabledelayedexpansion rem This script is finished by HongRui Wang at 2010-7-5 rem It check port 8022/7546/12345/9001/12346/9002 on server rem You should use check_nrpe to call this script through Windows Agent Nsclient++
set crit_num=0
rem ### Check Port 8022 ### rem 首先找出含有":8022"的所有条目,包括本机监听和外部连接,然后循环进行下面的检测. netstat -na | findstr /C:":8022" > port.txt for /F "tokens=2 usebackq" %%j in (port.txt) do ( rem 检查本机的监听端口中含有:80端口 echo %%j | findstr /C:":8022" >null rem 如果有80端口,则跳转到ok_8022 IF !ERRORLEVEL!==0 goto ok_8022 ) rem 如果循环完成,仍然没有8022端口,则执行下面的跳转 goto bad_8022
:ok_8022 echo "Port 8022 is exsit" goto port_7546
:bad_8022 echo "Port 8022 is not exsit" set crit_num=1
rem ### Check Port 7546 ### :port_7546 netstat -na | findstr /C:":7546" > port.txt for /F "tokens=2 usebackq" %%j in (port.txt) do ( echo %%j | findstr /C:":7546" >null IF !ERRORLEVEL!==0 goto ok_7546 )
goto bad_7546
:ok_7546 echo "Port 7546 is exsit" goto port_12345
:bad_7546 echo "Port 7546 is not exsit" set crit_num=1
rem ### Check Port 12345 ### :port_12345 netstat -na | findstr /C:":12345" > port.txt for /F "tokens=2 usebackq" %%j in (port.txt) do ( echo %%j | findstr /C:":12345" >null IF !ERRORLEVEL!==0 goto ok_12345 )
goto :bad_12345
:ok_12345 echo "Port 12345 is exsit" goto port_9001
:bad_12345 echo "Port 12345 is not exsit" set crit_num=1 rem ### Check Port 9001 ### :port_9001 netstat -na | findstr /C:":9001" > port.txt for /F "tokens=2 usebackq" %%j in (port.txt) do ( echo %%j | findstr /C:":9001" >null IF ! 0 goto ok_9001 )
goto bad_9001 :ok_9001 echo "Port 9001 is exsit" goto port_12346
:bad_9001 echo "Port 9001 is not exsit" set crit_num=1
rem ### Check Port 12346 ### :port_12346 netstat -na | findstr /C:":12346" > port.txt for /F "tokens=2 usebackq" %%j in (port.txt) do ( echo %%j | findstr /C:":12346" >null IF !ERRORLEVEL!==0 goto ok_12346 )
goto bad_12346
:ok_12346 echo "Port 12346 is exsit" goto port_9022
:bad_12346 echo "Port 12346 is not exsit" set crit_num=1 rem ### Check Port 9022 ### :port_9022 netstat -na | findstr /C:":9022" > port.txt for /F "tokens=2 usebackq" %%j in (port.txt) do ( echo %%j | findstr /C:":9022" >null IF ! == 0 goto ok_9022 )
goto bad_9022
:ok_9022 echo "Port 9022 is exsit" goto end
:bad_9022 echo "Port 9022 is not exsit" set crit_num=1
:end if %crit_num%==0 exit 0 if %crit_num%==1 exit 2
|
阅读(1735) | 评论(0) | 转发(0) |