家のネットワーク速度を計測しよう
最近、夜にネットが非常に重たい。SpeedTestかけると1Mbps行かないこともしばしば・・・。
何曜日の何時頃にどれぐらい重たいとか調べて、その間はインターネットしない生活しようと計画しました。
概要
CentOS7でpip入れてspeedtest-cli入れてcronで定期実行、出力は可能な限り見やすくする。
事前準備
speedtest
コマンドが使えるように準備。
rootで作業してます。一般ユーザーであれば適宜sudoをしてください。
yum install epel-release
yum install python2-pip
pip install --upgrade pip
pip install speedtest-cli
speedtest
実行結果を見やすく、後で再利用しやすい形にしたいため moreutils
も入れておく。
yum install moreutils
スクリプト準備
/root/bin/
に設置して、 /root/speedtest/
以下に結果を保存する前提。
save-speedtest.sh
# !/bin/sh
save_path=/root/speedtest/$(date +'%Y%m%d')/$(date +'%Y%m%d-%H%M%S.txt')
mkdir -p $(dirname $save_path)
/usr/bin/speedtest | ts '%Y-%m-%dT%H:%M:%S' > $save_path 2>>/root/speedtest_error.txt
このスクリプトをcronで定期実行させます。(省略)
計測結果の閲覧方法
とりあえず、Downloadだけ。
grep -Rh Download /root/speedtest
以下のような出力が得られます。
2017-06-22T23:57:30 Download: 8.66 Mbit/s
2017-06-23T00:01:01 Download: 2.08 Mbit/s
2017-06-23T00:01:00 Download: 3.10 Mbit/s
2017-06-23T00:20:21 Download: 4.90 Mbit/s
2017-06-23T00:20:53 Download: 6.92 Mbit/s
タイムスタンプはRubyで Time.parse
できる形にしてます。
後でグラフ化とかしたくなったときのためです。
詳しく見たくなったらRubyスクリプトでも書こうかと思います。
あとがき
データがとれたら、あとはデータをニンマリしながら見るだけですね。