curlコマンドを定期的に実行してレスポンスとHTTPコードを表示させることで、ping的にWebサイトの稼働確認を行うためのシェルスクリプトです。
後ろの席の人がWebサイトの稼働確認を手作業でやってるのを見て、ついかっとなって作りました。
Webサイトのレスポンスが遅かったり、画面が表示されなかったりする時に、レスポンス時間の平均値やアクセスOK/NG率を定量的に把握することが可能になります。
スクリプト
for i in `seq 0 9`
do
echo -n `date +"%Y/%m/%d %H:%M:%S,"` && \
echo `curl -LI http://example.com -o /dev/null -w '%{http_code},%{time_total}\n' -s` ;
sleep 10 ;
done
解説
URLの部分(http://example.com
)を稼働確認したいURLに変えて実行すると以下のような表示が出ます。
2018/03/06 19:17:53,200,6.840
2018/03/06 19:18:09,200,1.171
2018/03/06 19:18:21,200,6.570
2018/03/06 19:18:37,200,1.581
2018/03/06 19:18:49,200,1.208
カンマ区切りのデータはそれぞれ日時、HTTPレスポンスコード、レスポンス時間です。
for i in `seq 0 9`
の数字で繰り返し回数を変更できます。この場合は0から9まで、つまり10回実行されます。
また sleep 10
の数字は待機時間です。単位は秒なのでこの場合は10秒です。
注意点
sleep時間を極端に短くしたり、繰り返し回数を大きくすると、Webサーバに負荷がかかって悪影響を与えることもあるので、その辺を留意の上でお使いください。