約15分に一度 Cron で speedtest を立ち上げて csv で記録する
まずは完成形。
*/15 * * * * sleep $(((`hexdump -n 2 -e '/2 "\%u"' /dev/urandom`)\%(14*60))) ;/usr/bin/speedtest --csv >> /home/pi/speedtest-csv/speedtest.csv 2>> /home/pi/speedtest-csv/speedtest.err.log
$(((hexdump -n 2 -e '/2 "\%u"' /dev/urandom
)\%(14*60)))
Raspberry pi は cron でシェルに dash を使う。そのため $RANDOM が使えない。
Crontab 書き換えてbash 使えるようにしてももいいけど、他のマシン作るときにめんどくさい。
#普通の sh
sleep $(( $RANDOM % (14*60) )) # 動作時間も考えて 14分までの遅延させる。
sleep $(( (hexdump -n 2 -e '/2 "%u"' /dev/urandom
)%(14*60) ))
Cron では % 以後捨てられる
ので、\% としエスケープさせる。
約15分に一回
crontabで設定しログを取ると時々データーが抜ける。
ERROR: Unable to connect to servers to test latency. ERROR: Unable to connect to servers to test latency. 2021年 8月 10日 火曜日 14:30:02 UTC ERROR: Unable to connect to servers to test latency. 2021年 8月 10日 火曜日 14:45:01 UTC 2021年 8月 10日 火曜日 15:00:01 UTC ERROR: Unable to connect to servers to test latency. 2021年 8月 10日 火曜日 15:15:01 UTC 2021年 8月 10日 火曜日 16:27:27 UTC 2021年 8月 11日 水曜日 21:58:02 UTC 2021年 8月 11日 水曜日 22:08:44 UTC 2021年 8月 11日 水曜日 22:20:07 UTC
例外なく0分と30分。想像できるのがみんなアクセスしているから。
だから少しランダム化してみた。
これほど勉強する羽目になるとは。