Me gustaría hacer un control de salud de un servicio llamando a una URL específica. 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 consigo que envíe mensajes solo por errores. Si intento dirigir la salida a / dev / null, imprime el 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é mirar a través de las opciones de rizo, pero simplemente no puedo encontrar nada que se adapte a la situación en la que desea que se mantenga en silencio sobre el éxito, pero haga ruido en los errores.
¿Hay alguna manera de hacer que el rizo haga lo que quiero o hay alguna otra herramienta que debería mirar?
                    
                        curl
                                monitoring
                                
                    
                    
                        palto
fuente
                
                fuente

icingao cualquier otro sistema de monitoreo?Respuestas:
¿Qué hay de
-sSf? De las páginas del manual:Por ejemplo:
fuente
curl -fsS http://example.org > /dev/null. Eso no generará nada cuando no haya nada malo, pero imprimirá el código de estado en los errores, lo cual está bien para mí.-fpara futuras referencias.Creo que para la forma más simple de verificar si el sitio está vivo, podría usar el siguiente método:
Esto devolverá
HTTP/1.1 200 OK. Si la devolución no coincide con su salida, solicite ayuda.fuente
Necesita la
-sbandera (silenciosa), la-fbandera (falla con el código de salida en caso de error) y puede usar la-obandera para redirigir la salida:Este es solo un mal ejemplo para un script cron simple. Normalmente, solo desea recibir un correo si un sitio web no funciona.
fuente
Puede capturar estadísticas de tiempo de red desde el rizo. Las latencias de cada fase en un ciclo de solicitud / respuesta pueden ser útiles para determinar la salud.
fuente
Esta forma lo ayudará cuando intente probar el sitio cuando https esté presente:
fuente
Recientemente me pidieron que inventara algo que actuara más como un latido sofisticado.
O, expandido para un poco más de legibilidad,
Lo que hice fue
curlun sitio web, analizar todos los enlaces del html y luegocurllos enlaces analizados, generando solo el código de estado. Luego buscaría códigos de estado http> = 400 para encontrar errores.fuente
Responder:
Explicaciones:
timeout 3sestablecerá un tiempo de espera de 3 segundos para su solicitud. Contestar más lento se considera "no saludable"-fflag fallará temprano,-Smostrará errores,-ssuprimirá la salida normal,-Isolo buscará encabezados HTTP, no el contenido. (Como siempre, hay más detalles disponibles en elman curlcomando).-checkenddirectiva openssl verifica las fechas de vencimiento de un certificado. En mi ejemplo, son 20 días (especificados en segundos).fuente
-sy el-SintercambioCurl tiene códigos de estado de salida muy específicos
¿Por qué no solo verificarlos?
Uso:
Resultado:
Notas:
Este script solo verifica si el sitio puede resolverse.
Este código debería ayudarlo si lo único que le importa es que el sitio esté activo o inactivo.
Sin embargo, si realiza algunos cambios en el bloque if / else, puede probar fácilmente otros códigos de estado si lo desea
fuente