netstatで通信の接続状況を定期監視


接続状況を定期的に記録するバッチ

C# HttpClientプログラムでポート枯渇が発生する事象があり、使用状況を監視するのに作成したバッチです。

バッチを実行するカレントディレクトリに現在日時のディレクトリを作成し、定期的に実行するnetstat実行結果をファイルに出力します。

netstat_monitor.bat
@ECHO OFF

REM 現在日時の文字列を変数OUTPUT_DIRに設定し、ディレクトリ作成
FOR /F %%i IN ('powershell Get-Date -Format "yyyyMMddTHHmmss"') DO SET OUTPUT_DIR=%%i
SET OUTPUT_DIR=netstat_%OUTPUT_DIR%
ECHO 出力先フォルダ: %OUTPUT_DIR%
MKDIR %OUTPUT_DIR%

:loop

REM 現在日時の文字列を変数NOW_STRに設定
FOR /F %%i IN ('powershell Get-Date -Format "yyyyMMddTHHmmss"') DO SET NOW_STR=%%i

REM 現在日時のファイル名でファイルを作成
ECHO %NOW_STR% > %OUTPUT_DIR%\%NOW_STR%.txt

REM 現在日時を表示
ECHO %NOW_STR%

REM netsatat採取 TCPのみ
netstat -anop TCP >> %OUTPUT_DIR%\%NOW_STR%.txt

REM ループ前にスリープ
powershell sleep 5

GOTO loop
実行例
CMD>netstat_monitor.bat
出力先フォルダ: netstat_20200418T104446
20200418T104446
20200418T104451
20200418T104457
20200418T104502
:

停止するには[CTRL]+[C]

参考文献

続編

netstatで通信の接続状況を定期監視し可視化を追記しました