はじめに
Webサイトを10秒ごとにチェックしたいみたいなことがたまにあるのですが、毎回似たようなスクリプトを作っているのでこちらにメモします。コピペで実行できるのがよいところです。
スクリプト
SITE_URL=https://www.yahoo.co.jp/ while :; do DATE=`date '+%Y/%m/%d %T'`; RET=`curl -vs "$SITE_URL" 2>&1 | grep -E 'HTTP/' | grep -E '[0-9]{3}'`; echo $DATE $RET ; sleep 10; done
SITE_URLのURLを変えれば他のサイトでも使えます。HTTP 1.1 2対応です
実行例
$ SITE_URL=https://www.yahoo.co.jp/ $ while :; do DATE=`date '+%Y/%m/%d %T'`; RET=`curl -vs "$SITE_URL" 2>&1 | grep -E 'HTTP' | grep -E '[0-9]{3}'`; echo $DATE $RET ; sleep 10; done 2020/04/16 16:28:34 < HTTP/2 200 2020/04/16 16:28:44 < HTTP/2 200 2020/04/16 16:28:54 < HTTP/2 200 2020/04/16 16:29:04 < HTTP/2 200
メモ
- 集計しやすいように1行にしているが、<とか消す努力はしていない
- ちゃんとHTTP/1.1とHTTP/2に対応するように1文でgrepはかけるはず
もっと良い方法が絶対あるはずなのですが、これで用が済みましたので完了とします。