Script Bash para comprobar si un sitio HTTPS público está activo

Script Bash para comprobar si un sitio HTTPS público está activo

Estoy intentando configurar otro bloque de código en un script bash para comprobar si un sitio web público en HTTPS está activo o no. ¿Podemos hacer esto usando CURL? Cualquier sugerencia sobre qué se puede utilizar además de CURL. Gracias

Respuesta1

Aquí hay una manera de hacerlo usando wget en lugar de curl. Tenga en cuenta que MacOS no viene con wget de forma predeterminada.

Una solicitud web exitosa devolverá un código de 200, una falla devolverá un 300, 400, 404, ect... (verCódigos API REST)

Esta línea devolverá a 1si la solicitud web fue exitosa; de lo contrario, devolverá0

wget -q  -O /tmp/foo google.com | grep '200' /tmp/foo | wc -l
1

Respuesta2

Uno de tantos:

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

Respuesta3

Nagioscomplemento check_httpPuede hacer esto y mucho más, incluida la comprobación de texto específico en la respuesta. Puedes ejecutarlo desde un script de shell independientemente del propio 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

Respuesta4

aquí se respondió una pregunta similar:

https://stackoverflow.com/questions/12747929/linux-script-with-curl-to-check-webservice-is-up

La cita es de Burhan Khalid.

curl -sL -w "%{http_code}\n" "http://www.google.com/" -o /dev/nulo

-s = salida de Silent cURL

-L = Seguir redirecciones

-w = formato de salida personalizado

-o = Redirige la salida HTML a /dev/null

Ejemplo:

[~]$ curl -sL -w "%{http_code}\n" "http://www.google.com/" -o /dev/nulo

Probablemente eliminaría el \n si capturara el resultado.

por lo que solo necesita agregar -k en las opciones si no desea verificar si hay un certificado válido y usar https en lugar de http, obviamente.

curl -sL -w "%{http_code}\n" "https://www.google.com/" -o /dev/null

informa el código de estado 200 con un código de retorno de 0.

Para todo lo demás, debe definir su respuesta en el guión.

información relacionada