Python+WindowsタスクスケジューラでFast.comの回線測定を定期実行する環境を整えた

eyecatching_python-windows-taskscheduler-fastcom プログラミング
この記事は約2分で読めます。
回線の速度を測定したくPythonでプログラムを組んだ。ただ、Dockerからだとネットワーク設定が悪くローカルから測定するより半分程度の速度になっていた(これはこれであとで解決したい)。今の回線は変更する予定で取り急ぎローカルですぐ消せる環境を構築したため、紹介する。

環境・バージョン

  • Windows 11 Pro 23H2(OSビルド 22631.4169)
  • PowerShell 5.1.22621.4111

方針

この記事で構築したWindowsのPython環境を利用して構築する。こちらも再現性を高めるために手順をすべてPowerShellで実施する。

手順

この記事で紹介した方法でWindows上にPython環境が構築されている前提とする。

下記の流れでダウンロードや修正、タスクスケジューラへの登録を実施する。

  • 回線速度を測定するライブラリfast_speedtest.cliをpipでインストールする
  • 実際に回線速度を測定するPowerShellスクリプトfastcom.ps1をダウンロードする
  • Windowsタスクスケジューラ用インポートファイルであるfastcom.xmlをダウンロードする
  • Windowsタスクスケジューラを実行する環境向け修正をfastcom.xmlに対して実施する
  • Register-ScheduledTaskコマンドでWindowsタスクスケジューラに登録する

fastcom.ps1は実際に回線速度を測定するPowerShellスクリプト。datフォルダに測定した結果を格納する。

fastcom.xmlはWindowsタスクスケジューラにインポートするための設定ファイル。

fastcom_install.ps1で実施する置換の内容も含むが内容は下記の通り。

  • 現在時刻から5分後の時刻(00分から5分刻みの時間に丸めている)から5分おきに実行する
  • 終了時刻は1年後

その他

  • このあとfastcomで回線速度測定を自動化するスクリプトも組んだ。別記事で解説する。