多くのうちの 1 つ:
if curl -s --head --request GET https://example.com | grep "200 OK" > /dev/null; then
echo "mysite.com is UP"
else
echo "mysite.com is DOWN"
fi
curl の代わりに wget を使用する方法を次に示します。 MacOS にはデフォルトで wget が付属していないことに注意してください。
Web リクエストが成功するとコード 200 が返され、失敗すると 300、400、404 などが返されます... (REST API コードを参照)
この行は 1
を返します Web リクエストが成功した場合、それ以外の場合は 0
を返します
wget -q -O /tmp/foo google.com | grep '200' /tmp/foo | wc -l
1
Nagios の check_http プラグインは、これだけでなく、応答内の特定のテキストのチェックなど、さらに多くのことを実行できます。 Nagios 自体とは関係なく、シェル スクリプトから実行できます:
$ check_http --ssl -H www.google.com -r 'Feeling Lucky'
HTTP OK: HTTP/1.1 200 OK - 11900 bytes in 0.086 second response time |time=0.085943s;;;0.000000 size=11900B;;;0
$ echo $?
0