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 1
si 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.