Estou tentando configurar outro bloco de código em um script bash para verificar se um site público em HTTPS está ativo ou não. Podemos fazer isso usando CURL? Alguma sugestão do que pode ser usado além do CURL. Obrigado
Responder1
Aqui está uma maneira de fazer isso usando wget em vez de curl. Tenha em mente que o MacOS não vem com o wget por padrão.
Uma solicitação da web bem-sucedida retornará um código 200, uma falha retornará 300, 400, 404, etc.Códigos API REST)
Esta linha retornará um 1
se a solicitação da web for bem-sucedida, caso contrário, retornará0
wget -q -O /tmp/foo google.com | grep '200' /tmp/foo | wc -l
1
Responder2
Um de muitos:
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
Responder3
Nagios'plug-in check_httppode fazer isso e muito mais, incluindo a verificação de texto específico na resposta. Você pode executá-lo a partir de um shell script independentemente do próprio 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
Responder4
uma pergunta semelhante foi respondida aqui:
https://stackoverflow.com/questions/12747929/linux-script-with-curl-to-check-webservice-is-up
O Qoute é de Burhan Khalid
curl -sL -w "%{http_code}\n" "http://www.google.com/" -o /dev/null
-s = saída silenciosa do cURL
-L = Seguir redirecionamentos
-w = Formato de saída personalizado
-o = Redireciona a saída HTML para /dev/null
Exemplo:
[~]$ curl -sL -w "%{http_code}\n" "http://www.google.com/" -o /dev/null
Eu provavelmente removeria o \n se fosse para capturar a saída.
então você só precisa adicionar -k nas opções se não quiser verificar um certificado válido e usar https em vez de http, obviamente.
curl -sL -w "%{http_code}\n" "https://www.google.com/" -o /dev/null
relata o código de status 200 com um código de retorno 0.
Para todo o resto você precisa definir sua resposta no script.