はじめに

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はかけるはず

もっと良い方法が絶対あるはずなのですが、これで用が済みましたので完了とします。

元記事はこちら

Webサイトを簡単に定期チェックしたいときのワンライナー