Edited at

curlコマンドとシェルスクリプトでping的にWebサイトの稼働確認を行う

More than 1 year has passed since last update.

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サーバに負荷がかかって悪影響を与えることもあるので、その辺を留意の上でお使いください。