Un parmi tant d'autres :
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
Voici une façon de le faire en utilisant wget au lieu de curl. Gardez à l'esprit que MacOS n'est pas livré avec wget par défaut.
Une requête Web réussie renverra un code de 200, un échec renverra un 300, 400, 404, ect... (voir les codes de l'API REST)
Cette ligne renverra un 1
si la requête Web a réussi, sinon elle renverra 0
wget -q -O /tmp/foo google.com | grep '200' /tmp/foo | wc -l
1
Le plugin check_http de Nagios peut faire cela et bien plus encore, y compris vérifier un texte spécifique dans la réponse. Vous pouvez l'exécuter à partir d'un script shell indépendamment de Nagios lui-même :
$ 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