废话不说,先描述下背景。
背景:有家客户,其某台Windows PC机在某个时间段,总是无法访问远程服务器。而此时,其余PC机又可正常访问服务器。通过技术手段排查,网络又是畅通的。
技术排查方向:http创建连接的时候,需要PC端、Server端双方都拥有足够的可用端口。
沿着此方向排查,需要监控网络使用状态。因为是偶发行为,只能日志监控。由此,编写了以下bat脚本,供诸位参考一二。
::******说明,此案列日志默认输出至【D盘】。请依据真实设备环境,灵活调整日志目录******
@echo on
::校验小时区域(00~09区间,小时位不足)
set HOUR=%time:~0,2%
if /i %HOUR% LSS 10 (
set HOUR=0%time:~1,1%
)
::创建日志根目录
md d:\PortWatch
::获取当前执行时间
set FILE_PATH= d:\PortWatch\%date:~0,4%%date:~5,2%%date:~8,2%-%HOUR%.log
::打印执行时间
echo 执行时间:%date:~0,4%-%date:~5,2%-%date:~8,2% %HOUR%:%time:~3,2%:%time:~6,2% >> %FILE_PATH%
::打印网络状态核心内容
netstat -ano|findstr "TIME_WAIT CLOSE_WAIT" >> %FILE_PATH%
::打印结束符
echo ------ >> %FILE_PATH%
@echo off
::定时,每隔5秒抓取一次
timeout 5
::4、循环调用命令自身
%0