接続状況を定期的に記録するバッチ
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 - ホストのネットワーク統計や状態を確認する
- TCP/IP通信の状態を調べる「netstat」コマンドを使いこなす (1/2)
- 【Windows 10対応】Windowsの「timeout」「sleep」コマンドでバッチファイルの実行を一時停止する
続編
[netstatで通信の接続状況を定期監視し可視化] (https://qiita.com/curvaceous410/items/b862bbca78e6d544b41e)を追記しました