Navegador de código aberto com opção de linha de comando para verificar se há erros ao recuperar a página?

0

Eu tenho um par de TVs alimentadas por Raspberry Pis - eles têm o Raspbian instalado e inicializam diretamente no modo de tela cheia da Midori. Eles exibem métricas e, como tal, devem estar sempre ativados e exibindo uma página fixa.

Recentemente, consertei um problema com a queda freqüente do wifi, adicionando uma tarefa cron que faz um ifup na interface wlan sempre que detecta que a rede está inativa e que resolveu muitos dos problemas com o tempo de inatividade.

No entanto, agora estou correndo para o problema em que sempre que a página em si não está disponível, o navegador está "preso" em uma página de erro (uma frequente que recebo é "Conexão encerrada inesperadamente"). O ideal seria um navegador com uma opção de linha de comando para retornar o código de status da página que está aberta no momento / se algum erro ocorreu ou não na página e, em caso afirmativo, posso recarregar a página ou algo semelhante para trazer de volta. Eu já verifiquei as opções do terminal Midori , bem como as Chromium ones mas nenhum deles parece ter o que eu estou procurando, e googling isso provou ser difícil. Se alguém souber de um navegador ou de uma ferramenta que possa me ajudar com o que eu estaria fazendo, ficaria muito grato por qualquer sugestão!

    
por 3cheesewheel 11.09.2014 / 21:11

1 resposta

1

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.

    
por 11.09.2014 / 22:19