windows下检测端口占用情况
需求描述:
web服务运维过程中,需要使用netstat
命令统计web端口占用情况;
例如web端口为8080,检测命令如下:
netstat -nao|find “8080” /c
netstat -nao|find “8080” |find “ESTABLISHED” /c
netstat -nao|find “8080” |find “TIME_WAIT” /c
netstat -nao|find “8080” |find “CLOSE_WAIT” /c
netstat -nao|find “8080” |find “LISTENING” /c
进行性能测试时,需要检测一段时间内端口总体占用情况,手工输入命令较为繁琐,
此批处理脚本用于自动每隔5秒显示一次统计结果,效果如下图:
脚本如下:
脚本文件名称:port-checker
@echo off
if "%cnt%"=="" set /a cnt=0
set /a cnt+=1
set port=8080
title 端口占用检测[%port%][%cnt%]
set log_file=%cd%/check.log
echo [%time%]
echo TOTAL ESTABLISHED TIME_WAIT CLOSE_WAIT LISTENING
for /f "delims=" %%i in ('netstat -nao^|find "%port%" /c') do (set sl1=%%i)
for /f "delims=" %%i in ('netstat -nao^|find "%port%" ^|find "ESTABLISHED" /c') do (set sl2=%%i)
for /f "delims=" %%i in ('netstat -nao^|find "%port%" ^|find "TIME_WAIT" /c') do (set sl3=%%i)
for /f "delims=" %%i in ('netstat -nao^|find "%port%" ^|find "CLOSE_WAIT" /c') do (set sl4=%%i)
for /f "delims=" %%i in ('netstat -nao^|find "%port%" ^|find "LISTENING" /c') do (set sl5=%%i)
echo %sl1% %sl2% %sl3% %sl4% %sl5%
::pause
choice /t 5 /d y /n
call port-checker.bat