J'aimerais faire un bilan de santé d'un service en appelant une URL spécifique dessus. On dirait que la solution la plus simple serait d'utiliser cron pour effectuer la vérification toutes les minutes environ. En cas d'erreur, cron m'envoie un email.
J'ai essayé d'utiliser cUrl pour cela, mais je ne peux pas le faire sortir des messages uniquement sur les erreurs. Si j'essaie de diriger la sortie vers /dev/null, il imprime un rapport de progression.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5559 100 5559 0 0 100k 0 --:--:-- --:--:-- --:--:-- 106k
J'ai essayé de parcourir les options de boucle, mais je ne trouve rien qui convienne à la situation où vous voulez qu'il soit silencieux sur le succès mais fasse du bruit sur les erreurs.
Existe-t-il un moyen de faire en sorte que curl fasse ce que je veux ou y a-t-il un autre outil que je devrais examiner ?
Réponse acceptée :
Qu'en est-il de -sSf
? À partir des pages de manuel :
-s/--silent Silent or quiet mode. Do not show progress meter or error messages. Makes Curl mute. -S/--show-error When used with -s it makes curl show an error message if it fails. -f/--fail (HTTP) Fail silently (no output at all) on server errors. This is mostly done to better enable scripts etc to better deal with failed attempts. In normal cases when a HTTP server fails to deliver a document, it returns an HTML document stating so (which often also describes why and more). This flag will prevent curl from outputting that and return error 22. This method is not fail-safe and there are occasions where non-successful response codes will slip through, especially when authentication is involved (response codes 401 and 407).
Par exemple :
curl -sSf http://example.org > /dev/null