Você pode usar o wget ou curl para isso. Ambos são ferramentas de linha de comando para obter páginas da web e ter opções para examinar os códigos de retorno.
Por exemplo:
webmarc@plato:~$ wget http://www.google.com/ -S -O /dev/null 2>&1 | grep HTTP\/
HTTP/1.1 200 OK
Aqui -S
diz ao wget para imprimir os cabeçalhos do servidor, -O
salva o arquivo resultante em / dev / null porque não estou interessado no conteúdo, apenas no código de status. O 2>&1
é necessário porque o wget imprime tudo isso no stderr. E finalmente, apenas piping isso para grep para parte da string que está em cada código de resposta (HTTP / 1.1 é parte de cada código de status nos dias de hoje, mas eu deixei a versão para fora para que ele funcione com v1.2 ou 2.0) .
Você pode configurar um script de shell bash ao longo das linhas de
$RESULT='pi@kali:~$ wget http://www.google.com/ -S -O /dev/null 2>&1 | grep HTTP\/'
if [[ $RESULT != " HTTP/1.1 200 OK" ]]
then fix_teh_broken.sh
fi
Cole algo parecido no cron em uma programação de 1 ou 5 minutos e você está pronto para ir.
Obviamente, substitua o URL que você deseja monitorar pelo google.