Limite de ping em site? [RESOLVIDO]

1. Limite de ping em site? [RESOLVIDO]

João Paulo
princknoby

(usa Arch Linux)

Enviado em 05/07/2019 - 23:12h

Olá,

Estou começando a aprender um pouquinho de shell script, e estou tentando otimizar algumas coisas aqui no PC, e eu uma delas eu preciso testar minha conexão com a internet. Porém, preciso fazer isso em um loop infinito, pra caso, por algum motivo a conexão parar, eu conseguia refazer a tarefa.

Porém o script não estava funcionando muito bem, ele durava apenas alguns minutos... Então comecei a adicionar o comando sleep antes de pingar no site, e fui alterando o tempo... E quanto maior eu colocava o tempo, mais tempo o script funcionava como o esperado.

Então resolvi fazer um script a parte só pra checar isso

Segue o script:


#!/bin/bash

x=0

for (( i = 0;; i++ )); do
ping www.google.com.br -c 1 > /dev/null
y=$?
if [[ "$y" == "0" ]]; then
x=$((x+1))
echo "$x"
fi

if [[ "$y" != "0" ]]; then
echo Deu erro em $x
break;
fi
done


Coloquei pro script parar quando o ping der erro.
O ping sempre falha, mesmo sem a conexão falhar.

Alguém poderia me ajudar com isso?

Obrigado


  


2. Re: Limite de ping em site? [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 06/07/2019 - 13:14h

teste aqui, funcionou, não vi erro no script tb, talvez vc esteja com problema na versão do seu ping ou bash.
tente executar com "bash -x nome_do_script.sh"


3. Re: Limite de ping em site?

João Paulo
princknoby

(usa Arch Linux)

Enviado em 06/07/2019 - 13:48h

rai3mb escreveu:

teste aqui, funcionou, não vi erro no script tb, talvez vc esteja com problema na versão do seu ping ou bash.
tente executar com "bash -x nome_do_script.sh"


Olá, obrigado pela resposta

Executei conforme você me disse, e deu erro novamente quando chegou em 344. "Até quantas vezes" executa, varia, as vezes vai até 1000, as vezes dá erro em 600 e pouco, as vezes dá erro já no inicio, porém, minha conexão está perfeita!!! Estou rodando um terminal no celular, e pingando junto com o script.
No celular o ping não dá erro em momento algum (estão na mesma rede), ou seja, a conexão está perfeita, mas o ping da erro aleatoriamente no script aqui no pc!!!

Tem alguma ideia do que posso tentar fazer?

Estou usando essa versão do bash:
GNU bash, versão 5.0.7(1)-release 


Obrigado


4. Re: Limite de ping em site?

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 06/07/2019 - 19:16h

princknoby escreveu:

Olá,

Estou começando a aprender um pouquinho de shell script, e estou tentando otimizar algumas coisas aqui no PC, e eu uma delas eu preciso testar minha conexão com a internet. Porém, preciso fazer isso em um loop infinito, pra caso, por algum motivo a conexão parar, eu conseguia refazer a tarefa.

Porém o script não estava funcionando muito bem, ele durava apenas alguns minutos... Então comecei a adicionar o comando sleep antes de pingar no site, e fui alterando o tempo... E quanto maior eu colocava o tempo, mais tempo o script funcionava como o esperado.

Então resolvi fazer um script a parte só pra checar isso

Segue o script:


#!/bin/bash

x=0

for (( i = 0;; i++ )); do
ping www.google.com.br -c 1 > /dev/null
y=$?
if [[ "$y" == "0" ]]; then
x=$((x+1))
echo "$x"
fi

if [[ "$y" != "0" ]]; then
echo Deu erro em $x
break;
fi
done


Coloquei pro script parar quando o ping der erro.
O ping sempre falha, mesmo sem a conexão falhar.

Alguém poderia me ajudar com isso?
Obrigado

Boa noite, princknoby.
Quanto a falha do ping, no PC, pode ser a placa de rede..... ou se cabeado, o cabo de rede....
Em tempo,
Para testar números, use:
[ $X -eq 1 ].....
Não é necessário encerrar o "1º IF" e iniciar outro, faça:
if CONDIÇÃO;then
AÇÃO
else
AÇÃO
fi
Fica a dica.... Entenda como uma critica construtiva.... Só quero ajudar, já que está começando, comece direito.... rsrsrsr
Segue sugestão, testei aqui e não parou...
#!/bin/bash
while :;do let N++;sleep 1;sleep 1;
if ping -c1 -s1 google.com.br &>/dev/null;then
echo "$N OK";
else
echo "$N NOK"
break;
fi;
done

Importante => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


5. Re: Limite de ping em site? [RESOLVIDO]

João Paulo
princknoby

(usa Arch Linux)

Enviado em 06/07/2019 - 22:40h


msoliver escreveu:

princknoby escreveu:

Olá,

Estou começando a aprender um pouquinho de shell script, e estou tentando otimizar algumas coisas aqui no PC, e eu uma delas eu preciso testar minha conexão com a internet. Porém, preciso fazer isso em um loop infinito, pra caso, por algum motivo a conexão parar, eu conseguia refazer a tarefa.

Porém o script não estava funcionando muito bem, ele durava apenas alguns minutos... Então comecei a adicionar o comando sleep antes de pingar no site, e fui alterando o tempo... E quanto maior eu colocava o tempo, mais tempo o script funcionava como o esperado.

Então resolvi fazer um script a parte só pra checar isso

Segue o script:


#!/bin/bash

x=0

for (( i = 0;; i++ )); do
ping www.google.com.br -c 1 > /dev/null
y=$?
if [[ "$y" == "0" ]]; then
x=$((x+1))
echo "$x"
fi

if [[ "$y" != "0" ]]; then
echo Deu erro em $x
break;
fi
done


Coloquei pro script parar quando o ping der erro.
O ping sempre falha, mesmo sem a conexão falhar.

Alguém poderia me ajudar com isso?
Obrigado

Boa noite, princknoby.
Quanto a falha do ping, no PC, pode ser a placa de rede..... ou se cabeado, o cabo de rede....
Em tempo,
Para testar números, use:
[ $X -eq 1 ].....
Não é necessário encerrar o "1º IF" e iniciar outro, faça:
if CONDIÇÃO;then
AÇÃO
else
AÇÃO
fi
Fica a dica.... Entenda como uma critica construtiva.... Só quero ajudar, já que está começando, comece direito.... rsrsrsr
Segue sugestão, testei aqui e não parou...
#!/bin/bash
while :;do let N++;sleep 1;sleep 1;
if ping -c1 -s1 google.com.br &>/dev/null;then
echo "$N OK";
else
echo "$N NOK"
break;
fi;
done

Importante => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


Boa noite msoliver.

Muito obrigado pelas dicas :D irei colocá-las em prática!

Obrigado pelo script também, rodei ele aqui, e também deu erro... Pra testar mais algo, rodei o script e em outro terminal rodei um ping (sem ser por script) e deixei rodando. E é o que eu disse... O script deu erro, e o ping que eu tava rodando fora do script não. Nem mesmo a latência não aumentou durante o erro do script.

Não sei mais o que tentar... Sobre ser a placa de rede, fiz o mesmo teste em outro PC. Também da erro no script mas não no ping fora do script.
Também já tentei usando conexão cabeada e por wifi, e também já tentei com outro modem/roteador.

Obrigado.


6. Re: Limite de ping em site? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 07/07/2019 - 05:26h

Pode não haver nenhum problema. De certo modo, é de se esperar que o ping nem sempre funcione 100%, mesmo que a rede esteja consideravelmente bem. Por isso, é interessante conhecer um pouquinho sobre o funcionamento da rede IP e protocolos relacionados, bem como sobre o comportamento dos dispositivos envolvidos.

A ferramenta ping utiliza duas mensagens definidas no ICMP (Internet Control Messages Protocol) para funcionar. Mais especificamente, o cliente envia mensagens do tipo ICMP echo e espera receber do outro lado mensagens ICMP echo-reply. Sem pretensão de explicar tudo sobre o assunto, é interessante saber o seguinte sobre o ICMP:

  • ICMP não estabelece conexões entre os nós; cada mensagem que trafega da máquina A para a máquina B é, em princípio, totalmente independente de qualquer coisa transmitida de A para B anteriormente.

  • ICMP não tem mecanismos de retransmissão; se a sua mensagem de echo se perder, o outro lado nunca terá qualquer noção de que você a enviou, e se o echo-reply que você estiver esperando não chegar em tempo, você nunca saberá se é porque a mensagem que você enviou se perdeu o se porque a mensagem de resposta se perdeu.

  • Muitos equipamentos, especialmente da Cisco, e mais particularmente seus roteadores e switches, tratam mensagens ICMP dirigidas a eles próprios com prioridade mais baixa do que mensagens enviadas para outras máquinas ou mensagens que usem outros protocolos (a ideia é que o roteador existe para rotear e o switch para comutar, não para serem eles mesmos alvos de serviços, e muito menos de testes aleatórios).

  • Outros equipamentos podem optar também por limitar ou mesmo desabilitar algumas mensagens do ICMP que possam ser consideradas pouco relevantes ou mesmo indesejáveis, do ponto de vista de um serviço prestado. Por exemplo: o administrador de um serviço web pode querer desabilitar tudo que não seja tráfego HTTP e HTTPS, pois a máquina está para servir páginas web, não para ficar respondendo a pings aleatórios, vindos da Internet.


Algumas sugestões para que você veja o estado de sua conexão com a Internet são as seguintes:

  1. Teste diretamente o estado da interface externa, se isso for possível.

      a) Se a interface com a Internet estiver ligada diretamente na máquina que você vai usar para testar (incluindo PPPoE, se cehgar até sua máquina), isso é geralmente muito fácil de fazer (comandos netstat, ifconfig ou ip, por exemplo).

      b) Se estiver conectada num modem ou roteador DSL/cabo, pode haver formas de testar as interfaces via comando remoto por SSH, ou por SNMP, ou mesmo via requisição por HTTP ou HTTPS, dependendo de quais recursos seu roteador ou modem oferece (ou meu, por exemplo, não ajuda muito nesse sentido).

      VANTAGEM: Rápida e confiável, pois só depende de recursos que estão sob seu controle direto.

      DESVANTAGEM: Testa apenas um dos itens, que é o estado da interface de saída. É possível que essa interface esteja OK, mas a comunicação esteja impedida por outro motivo, tal como um problema na rede do provedor de acesso.

  2. Em lugar de ICMP, use um protocolo de mais alto nível, e prefira falar com um serviço destinado a atender o público, em lugar de falar com um equipamento de rede.

      Exemplos: um site na web, um servidor DNS, um servidor sincronização de hora (NTP), um servidor de e-mail (SMTP), uma máquina com acesso via SSH, etc.

      VANTAGENS: Maior chance de ter respostas relevantes, menor chance de se deparar com bloqueios ou limitações de taxas de transferência, uso de protocolos de transporte e/ou de aplicação que costumam identificar e tratar eventuais perdas de dados trafegados na rede.

      DESVANTAGEM: Depender de coisas que não estão sob seu controle, e que podem, por isso, induzir a diagnóstico errôneo (por exemplo: se aquele site que você está testando estiver fora do ar, você pode ser induzido a achar que o seu link está fora, quando na verdade não está). Pode ser necessário testar mais do que apenas um parâmetro antes de decidir acionar a contingência, e isso torna o teste mais complexo.

  3. Procure testar coisas que estejam relativamente próximas (em termos de rede, não necessariamente em termos geográficos) ou coisas que, mesmo distantes, sejam muito importantes para você.

      VANTAGENS: Os testes tenderão a ser mais rápidos ou a ter a informação que lhe interessa, e dependerão menos de variáveis externas que podem não ser tão úteis assim (você não quer necessariamente testar todos os elementos de rede no caminho até o destino)

      DESVANTAGEM: Às vezes, a troca de interface, sobretudo quando o provedor da rede de contingência é diferente do do interface principal, poderia ser suficiente para restaurar a operação normal (por exemplo, seu provedor está OK, mas algum problema transitório entre ele e o destino final testado pode ocorrer, fazendo seu teste falhar, mas o provedor do link de contingência pode utilizar outros caminhos, e não ser afetado pela mesma instabilidade transitória).


... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)


7. Re: Limite de ping em site? [RESOLVIDO]

João Paulo
princknoby

(usa Arch Linux)

Enviado em 07/07/2019 - 13:37h

Olá a todos novamente.

Consegui encontrar uma solução para o problema. Não encontrei o problema, porém encontrei uma solução rsrs

A solução foi bem simples, basto usar o parâmetro -c 3. Foi bem engraçado... Pingando apenas 1 vez por comando, dava erro, pingando 3x não ><

Até achei que pudesse ser problema com minha conexão, e cheguei a pensar "Deve ter sido sanado o problema, por isso não está dando erro".
Então resolvi rodar todos os scripts simultaneamente! TODOS continuaram dando erro, menos o com o parâmetro -c 3.

Então adotei ele no meu script para ver se também iria funcionar. Realizei algumas horas de testes, e estou sem nenhum problema!

Não sei qual era o problema... Mas, foi resolvido.

Obrigado a todos que tentaram ajudar!


8. Re: Limite de ping em site? [RESOLVIDO]

João Paulo
princknoby

(usa Arch Linux)

Enviado em 07/07/2019 - 13:38h


paulo1205 escreveu:

Pode não haver nenhum problema. De certo modo, é de se esperar que o ping nem sempre funcione 100%, mesmo que a rede esteja consideravelmente bem. Por isso, é interessante conhecer um pouquinho sobre o funcionamento da rede IP e protocolos relacionados, bem como sobre o comportamento dos dispositivos envolvidos.

A ferramenta ping utiliza duas mensagens definidas no ICMP (Internet Control Messages Protocol) para funcionar. Mais especificamente, o cliente envia mensagens do tipo ICMP echo e espera receber do outro lado mensagens ICMP echo-reply. Sem pretensão de explicar tudo sobre o assunto, é interessante saber o seguinte sobre o ICMP:

  • ICMP não estabelece conexões entre os nós; cada mensagem que trafega da máquina A para a máquina B é, em princípio, totalmente independente de qualquer coisa transmitida de A para B anteriormente.

  • ICMP não tem mecanismos de retransmissão; se a sua mensagem de echo se perder, o outro lado nunca terá qualquer noção de que você a enviou, e se o echo-reply que você estiver esperando não chegar em tempo, você nunca saberá se é porque a mensagem que você enviou se perdeu o se porque a mensagem de resposta se perdeu.

  • Muitos equipamentos, especialmente da Cisco, e mais particularmente seus roteadores e switches, tratam mensagens ICMP dirigidas a eles próprios com prioridade mais baixa do que mensagens enviadas para outras máquinas ou mensagens que usem outros protocolos (a ideia é que o roteador existe para rotear e o switch para comutar, não para serem eles mesmos alvos de serviços, e muito menos de testes aleatórios).

  • Outros equipamentos podem optar também por limitar ou mesmo desabilitar algumas mensagens do ICMP que possam ser consideradas pouco relevantes ou mesmo indesejáveis, do ponto de vista de um serviço prestado. Por exemplo: o administrador de um serviço web pode querer desabilitar tudo que não seja tráfego HTTP e HTTPS, pois a máquina está para servir páginas web, não para ficar respondendo a pings aleatórios, vindos da Internet.


Algumas sugestões para que você veja o estado de sua conexão com a Internet são as seguintes:

  1. Teste diretamente o estado da interface externa, se isso for possível.

      a) Se a interface com a Internet estiver ligada diretamente na máquina que você vai usar para testar (incluindo PPPoE, se cehgar até sua máquina), isso é geralmente muito fácil de fazer (comandos netstat, ifconfig ou ip, por exemplo).

      b) Se estiver conectada num modem ou roteador DSL/cabo, pode haver formas de testar as interfaces via comando remoto por SSH, ou por SNMP, ou mesmo via requisição por HTTP ou HTTPS, dependendo de quais recursos seu roteador ou modem oferece (ou meu, por exemplo, não ajuda muito nesse sentido).

      VANTAGEM: Rápida e confiável, pois só depende de recursos que estão sob seu controle direto.

      DESVANTAGEM: Testa apenas um dos itens, que é o estado da interface de saída. É possível que essa interface esteja OK, mas a comunicação esteja impedida por outro motivo, tal como um problema na rede do provedor de acesso.

  2. Em lugar de ICMP, use um protocolo de mais alto nível, e prefira falar com um serviço destinado a atender o público, em lugar de falar com um equipamento de rede.

      Exemplos: um site na web, um servidor DNS, um servidor sincronização de hora (NTP), um servidor de e-mail (SMTP), uma máquina com acesso via SSH, etc.

      VANTAGENS: Maior chance de ter respostas relevantes, menor chance de se deparar com bloqueios ou limitações de taxas de transferência, uso de protocolos de transporte e/ou de aplicação que costumam identificar e tratar eventuais perdas de dados trafegados na rede.

      DESVANTAGEM: Depender de coisas que não estão sob seu controle, e que podem, por isso, induzir a diagnóstico errôneo (por exemplo: se aquele site que você está testando estiver fora do ar, você pode ser induzido a achar que o seu link está fora, quando na verdade não está). Pode ser necessário testar mais do que apenas um parâmetro antes de decidir acionar a contingência, e isso torna o teste mais complexo.

  3. Procure testar coisas que estejam relativamente próximas (em termos de rede, não necessariamente em termos geográficos) ou coisas que, mesmo distantes, sejam muito importantes para você.

      VANTAGENS: Os testes tenderão a ser mais rápidos ou a ter a informação que lhe interessa, e dependerão menos de variáveis externas que podem não ser tão úteis assim (você não quer necessariamente testar todos os elementos de rede no caminho até o destino)

      DESVANTAGEM: Às vezes, a troca de interface, sobretudo quando o provedor da rede de contingência é diferente do do interface principal, poderia ser suficiente para restaurar a operação normal (por exemplo, seu provedor está OK, mas algum problema transitório entre ele e o destino final testado pode ocorrer, fazendo seu teste falhar, mas o provedor do link de contingência pode utilizar outros caminhos, e não ser afetado pela mesma instabilidade transitória).


... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)

Olá Paulo,

Poxa vida! Quanta informação!!! Pode ter certeza que irei estudar elas!!

Muitíssimo obrigado!!!







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts