Como suprimir "Host de destino inacessível" ao executar o ping

0

Quando executo o comando ping, geralmente faço isso com o objetivo de saber quando uma determinada máquina surgiu, por exemplo, da reinicialização. Mas recentemente (leia-se: nos últimos anos) tenho notado que após 10 ou 15 segundos de não obter uma resposta, o ping começa a ficar extremamente conversando, repetidamente exibindo "Destination Host Unreachable" a cada segundo! Isso é extremamente chato. Um dos grandes usos diagnósticos do ping usado é que qualquer saída significou que o host estava ativo.

Então, como posso me livrar desse comportamento estúpido e tê-lo apenas imprimir pings reais? Estes "Destination Host Unreachable" não estão indo para stderr como eu esperaria que um programa bem comportado fizesse com erros, então eu não posso redirecionar o stderr para se livrar deles!

    
por Michael 08.10.2012 / 20:45

2 respostas

1

"Host de destino inacessível" é fornecido quando o sistema não sabe como enviar a solicitação de ping para o host remoto em primeiro lugar. Isso significa que seu sistema ou um roteador intermediário não possui uma entrada / regra de tabela de roteamento que permita encaminhar o pacote ao roteador responsável por essa rede.

E ele está ficando "extremamente falante" porque isso acontece para cada pacote (isto é, ele não está perdido, mas essencialmente você está recebendo uma mensagem "não sei como entregar este pacote" para cada um).

Você pode filtrá-los via grep embora

ping 192.168.5.1 | grep -v "host unreachable"
    
por 08.10.2012 / 20:49
0

A opção -i pode ajudá-lo (na página de manual do ping):

    -i interval
           Wait interval seconds between sending each packet.  The
           default  is  to wait for one second between each packet
           normally, or not to wait in flood mode. Only super-user
           may set interval to values less 0.2 seconds.
    
por 08.10.2012 / 21:03

Tags