Me gustaría hacer una verificación de salud de un servicio llamando a una URL específica en él. Parece que la solución más simple sería usar cron para hacer la verificación cada minuto más o menos. En caso de errores, cron me envía un correo electrónico.
Intenté usar cUrl para esto, pero no puedo hacer que genere mensajes solo en caso de errores. Si trato de dirigir la salida a /dev/null, imprime un informe de progreso.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5559 100 5559 0 0 100k 0 --:--:-- --:--:-- --:--:-- 106k
Intenté buscar en las opciones de curl, pero no puedo encontrar nada que se adapte a la situación en la que desea que no tenga en cuenta el éxito pero que haga ruido en los errores.
¿Hay alguna manera de hacer que curl haga lo que quiero o hay alguna otra herramienta que debería estar buscando?
Respuesta aceptada:
¿Qué pasa con -sSf
? De las páginas man:
-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).
Por ejemplo:
curl -sSf http://example.org > /dev/null