Eu gostaria de fazer uma verificação de integridade de um serviço chamando um URL específico. Parece que a solução mais simples seria usar o cron para fazer a verificação a cada minuto. Em caso de erros, o cron me envia um email.
Tentei usar cUrl para isso, mas não consigo enviar mensagens apenas por erros. Se eu tentar direcionar a saída para / dev / null, ele imprimirá o relatório de progresso.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5559 100 5559 0 0 100k 0 --:--:-- --:--:-- --:--:-- 106k
Tentei examinar as opções de curvatura, mas simplesmente não consigo encontrar nada que se adapte à situação em que você deseja que ela seja silenciosa quanto ao sucesso, mas que faça barulho quanto a erros.
Existe uma maneira de fazer o curl fazer o que eu quero ou há alguma outra ferramenta que eu deveria estar olhando?
curl
monitoring
palto
fonte
fonte
icinga
ou qualquer outro sistema de monitoramento?Respostas:
Que tal
-sSf
? Nas páginas do manual:Por exemplo:
fonte
curl -fsS http://example.org > /dev/null
. Isso não produzirá nada quando nada estiver errado, mas imprimirá o código de status nos erros, o que é bom para mim.-f
para futuras referências.Eu acho que, para a maneira mais simples de verificar se o site está ativo, você pode usar o seguinte método:
Isso retornará
HTTP/1.1 200 OK
. Se o retorno não corresponder à sua saída, peça ajuda.fonte
Você precisa do
-s
sinalizador (silencioso),-f
sinalizador (falha no código de saída por erro) e pode usar o-o
sinalizador para redirecionar a saída:Este é apenas um mau exemplo para um script cron simples. Normalmente, você deseja receber apenas um e-mail se um site estiver inativo.
fonte
você pode capturar estatísticas de tempo da rede a partir de curl. latências de cada fase em um ciclo de solicitação / resposta podem ser úteis para determinar a integridade.
fonte
Dessa maneira, você poderá tentar testar o site quando https estiver presente:
fonte
Recentemente, fui convidado a criar algo que funcionaria mais como um batimento cardíaco sofisticado.
Ou, expandido para um pouco mais de legibilidade,
O que fiz foi
curl
um site, analise todos os links do html e, em seguida,curl
os links analisados, produzindo apenas o código de status. Então eu procuraria por códigos de status http> = 400 para encontrar erros.fonte
Responda:
Explicações:
timeout 3s
definirá um tempo limite de 3 segundos para sua solicitação. Responder mais devagar é considerado "não saudável"-f
sinalizador de ondulação falhará cedo,-S
mostrará erros,-s
suprimirá a saída normal,-I
buscará apenas cabeçalhos HTTP, não o conteúdo. (Como sempre, mais detalhes estão disponíveis sobman curl
comando.)-checkend
diretiva openssl verifica as datas de validade de um certificado. No meu exemplo, são 20 dias (especificados em segundos).fonte
-s
e-S
trocadosO Curl possui códigos de status de saída muito específicos.
Por que não apenas verificar esses códigos ?
Uso:
Resultado:
Notas:
Este script verifica apenas se o site pode ser resolvido.
Esse código deve ajudá-lo se tudo o que importa é que o site esteja ativo ou inativo.
No entanto, se você fizer algumas alterações no bloco if / else, poderá testar facilmente outros códigos de status, se desejar
fonte