Script de bash para verificar se um site HTTPS público está ativo [fechado]

4

Estou tentando configurar outro bloco de código para um script bash para verificar se um site público em HTTPS está ativo ou não. Podemos fazer isso usando o CURL? Qualquer sugestão que possa ser usada além da CURL. Obrigado

    
por Lego 19.12.2013 / 17:07

5 respostas

2

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.

Um pedido da Web bem-sucedido retornará um código de 200, uma falha retornará um 300, 400, 404, ect ... (consulte Códigos da API REST

Esta linha retornará um 1 se a solicitação da web tiver sido bem-sucedida, caso contrário, ela retornará 0

wget -q  -O /tmp/foo google.com | grep '200' /tmp/foo | wc -l
1
    
por 19.12.2013 / 17:25
10

Um dos 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
    
por 19.12.2013 / 17:21
3
O plug-in check_http do Nagios pode fazer isso e muito mais, incluindo a verificação de texto específico em a resposta. Você pode executá-lo a partir de um script de shell, 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
    
por 19.12.2013 / 17:44
1

uma pergunta semelhante foi respondida aqui:

link

O Qoute é de Burhan Khalid

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

-s = Silent cURL's output

-L = Follow redirects

-w = Custom output format

-o = Redirects the HTML output to /dev/null

Example:

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

I would probably remove the \n if It were to capture the output.

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

informa o código de status 200 com um código de retorno de 0.

Para tudo o mais, você precisa definir sua resposta no script.

    
por 19.12.2013 / 17:25
1

Por que não usar uma solução completa para monitoramento? Eu achei monit para ser muito bom para isso: link

(isso vem depois de anos usando scripts bash feitos em casa - eu achei que o monit era mais transportável para caixas diferentes, e mais robusto do que alguns scripts confusos. Não sei sobre a versão paga deles).

    
por 19.12.2013 / 17:41

Tags