スピードテストを自動で定期的に実行し自宅の無線環境を可視化し通信速度を改善したい!
・今回:スピードテスト実行バッチファイルを作成する
・次回:バッチファイルを定期的に自動実行するタスクスケジューラの設定をする
目的・背景
今回の検証の目的は、家の無線(Wi-Fi)の時間帯別の速度を定期的に自動測定することです。自宅の○コモhome5G経由の通信速度があまりにも遅いため、時間帯によるものなのか設定によるものなのか詳細を調べたい、ということで検証をしてみます。
参考サイト:
Speedtest CLIでインターネット速度を定期自動計測してログを残す方法
https://qiita.com/purple_jp/items/0905c933f9d1a28c6313
動作環境
Windows10 proのPC
① SPEEDTEST® CLIをPCにダウンロードする
1.以下サイトにアクセスする。
https://www.speedtest.net/ja/apps/cli
2.動作環境はWindowsPCのため、「Windows用ダウンロード」をクリック。
3.ダウンロードした圧縮ファイルを展開し、アプリケーションを開く。
Do you accept the license? → Yes
Yesと入力すると下図のように自動で測定が始まり、測定終了とともにウィンドウが閉じる。
② コマンドプロンプト上でSPEEDTESTを実行してみる
計測内容をまずは保存できるようにしたい。
そのためにコマンドプロンプト上で動かしてみる。
1.①でダウンロードしたSPEEDTEST CLIを任意のディレクトリに格納
(今回の例)Cドライブ配下に「speedtest」アプリケーションを格納
C:\speedtest.exe
2.コマンドプロンプトを開き、任意のディレクトリに移動
C:\Users\Owner>cd ../..
C:\>
3.下記のように入力し、enterを押すとSPEEDTESTが実行される
C:\>/speedtest
4.Result URLをクリックするとブラウザで結果を見ることもできる
③ 実行結果をCSVで出力してみる
1.オプションを実行
C:\>/speedtest -f csv
2.1の状態だと出力結果を見ても何の情報かがわからないので、ヘッダーをつける。
※オプションは以下コマンドで確認可能
C:\>/speedtest -h
④SPEEDTESTをバッチファイルで実行してみる
1.ファイルの格納場所の整理
・speedtest.exeはC:\Users\Owner\配下
・バッチファイルもC:\Users\Owner\配下
※Cドライブ直下だと管理者で実行うんぬんで難しかった
2.バッチファイルの作成
@echo off
setlocal
set current_dir=C:\Users\Owner\
set NOW_TIME="%date% %time%"
echo %current_dir%speedtest.exe
for /f "usebackq delims=" %%A in (`%current_dir%speedtest.exe -f csv -s 14623`) do set RSLT=%%A
set RSLT_DATA=%NOW_TIME%,%RSLT%
echo %RSLT_DATA% >> %current_dir%log_speedtest.csv
コマンド | 意味 |
@echo off | 実行中のコマンドを非表示にする |
setlocal | 変数を内部変数として定義 |
%変数名% | 『変数名』の変数を参照する |
%date% | 日付を取得 (例)2024/02/25 |
%time% | 時刻を取得 (例)18:07:49.45 |
delims= | 区切り文字を無効化 |
()内のコマンド | スピードテストを21569のサーバで実行してCSVに出力する |
for /f の行 | ()内のコマンドの実行結果を%%Aに格納し、変数『RSLT』を%%Aと定義する、のループ処理 |
最終行 | 変数RSLT_DATAのデータをlog_spendtest.csvに上書き |
わかりにくいので色付きバージョン↓
⑤SPEEDTESTバッチファイルの実行結果
2回バッチファイルを手動で実行した結果はこちら。
次回、これをタスクスケジューラで自動化する!
コメント