インターネットのレスポンスを定期的に自動取得するバッチを作成。
wgetはこの辺が詳しかった
https://orebibou.com/2016/03/wget%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%A6%9A%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E4%BD%BF%E3%81%84%E6%96%B916%E5%80%8B/
■測定用のサンプルファイル
測定の誤差を小さくするためにはある程度大きなサイズのファイルが必要。
インターネット上にあるコンテンツのURLさえ決めればよい。よく使うサイトで数MByteのファイルをみつける。
今回のテストでは、BNRスピードテストで使用しているファイル
http://www.musen-lan.com/speed/speed-img.html
を流用させていただいた。
※あまりやりすぎると怒られる可能性があるので注意
■測定用のプログラム
サンプルファイルをダウンロードをするプログラムには、wget.exe を使う。
wgetはunixでは標準で使えるメジャーなソフトだが、Windowsにはこのソフトが入っていない。
以下サイトからダウンロード。
http://gnuwin32.sourceforge.net/packages/wget.htm
(若干ダウンロードの仕方が怪しかったがダウンロードはできた)
テスト用の適当なフォルダを作成し、必要な実行プログラム wget.exe と 4つのdllをコピーする。
1. BinariesのZipとDependenciesのZipをダウンロード
2. wget-1.11.4-1-bin.zipの中にあるbinフォルダを開き、wget.exeをテストフォルダにコピー
3. wget-1.11.4-1-dep.zipの中にあるbinフォルダを開き、4つのdllをテストフォルダにコピー
■wgetテスト
Windowsのコマンドプロンプトを開き、wget.exeをコピーしたテスト用のフォルダに移動する。
ここにはさきほどコピーした wget.exe と4つの関連dllがある。
サンプルファイルをダウンロードするにはこんな感じでコマンドを入力する。
cd ~
wget http://bnr.on.arena.ne.jp/image/speed_imagec1.jpg
実行するとファイルのダウンロードが開始され、ファイル転送が完了すると都合のいいことに転送速度が表示されている。
今回はこの転送速度を記録。
プロキシ環境や、対象サイトでACL設定などがある場合は、上記のコマンドだけでは駄目だった。
========================================================
※プロキシ設定が必要な場合
wgetでproxy経由でHTMLを取得するには、コマンドラインオプションで -e HTTP_PROXY={proxyホスト名} を指定します。
$ wget -e HTTP_PROXY=proxy.co.jp ‘http://www.goo.ne.jp/’
ポート番号を指定する場合には、proxyホスト名の後ろに “:{ポート番号}” を追加。
$wget -e HTTP_PROXY=proxy.co.jp:8080 ‘http://www.goo.ne.jp/’
=========================================================
これは上記のパッケージにも入っていた。
■バッチファイルを用意しwgetを定時実行する
wgetの実行コマンドをバッチファイルに記述し、Windowsのタスクスケジューラに登録。
実行結果は wget.log というログファイルに追記していく。
“wgettest.bat”のサンプル
-O nul : ダウンロードしたファイルをHDDに保管せず廃棄
-a wget.log : 追記形式のログファイル名指定
-T 10 : 秒単位でタイムアウトを設定
wget -O nul -a wget.log -T 10 http://bnr.on.arena.ne.jp/image/speed_imagec1.jpg |
Windowsタスクスケジューラへの登録
タスクスケジューラに登録するには、まずコントロールパネルから[システムとセキュリティ]-[管理ツール]をクリックし、[タスク スケジューラ]を選択してタスクスケジューラの設定画面を開く。
新しくタスクを作成するには、タスクスケジューラで左側の[タスク スケジューラ (ローカル)]フォルダーを選択してから、右側の[基本タスクの作成]をクリックし、タスク作成ウィザードを起動する。ウィザードでは、以下のような項目に適切に入力/選択して基本タスクを作成する。
1.名前「時間測定」
2.トリガー「毎日」
3.開始「今日の日付」、間隔「1日」
4.操作「プログラムの開始」
5.プログラム/スクリプト「cmd」、引数の追加「/c c:¥~¥internet.bat」、開始(オプション)「c:¥~」
タスクスケジュールの調整
ここまでの設定だと1日1回しか起動しないので、15分おきに起動するよう調整する。
タスクスケジューラの画面の左から[タスク スケジューラ ライブラリ]を選び、中央の該当タスクを右クリックして[プロパティ]をクリックする。15分おきに起動する設定については、プロパティの画面で[トリガー]タブを選択してから[編集]ボタンをクリックする。
[トリガーの編集]画面で、繰り返し実行する間隔とそれを続ける時間を指定する。ここではタスク開始時刻を1日1回0:00とし、15分おきに実行していく。
認証が必要なサイトなどは、
wget -O nul -a test.log -T 10 –http-user=ユーザ名 –http-passwd=パスワード URL
でダウンロードすることも可能
コメント