Pular para o conteúdo

Filtra o ping

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Filtra o ping

Enviado em 17/06/2014 - 09:15h

Bom dia pessoal;

Aproveitei a ajuda do amigo no link: http://www.vivaolinux.com.br/topico/Shell-Script/timeout-ping?,

e fiz um script para monitorar a qualidade de um serviço de transporte de dados, onde a latência média é muito importante que seja menor do que 15ms, então fiz assim:

TIME=`ping -c1 192.168.2.198 | awk -F = {'print $4'} | awk {'print $1'}`
convTime=`echo "$TIME * 100" | bc`
timeCompare="$(echo $convTime | sed 's/.00//')"
echo "timeCompare foi de $timeCompare"
if [ "$timeCompare" -lt 1500 ];then
echo "Latência está OK - $TIME"
else
echo "ATENCAO: A LATENCIA FOI DE $TIME"
fi

Isso vai ficar rodando no servidor, e dentro do 'else' vai ter um comando pra me enviar uma notificação por email, nada de mais :)

O script funciona, a saída dele é algo assim:

./ping.sh
timeCompare foi de 750
Latência está OK -
7.50

Mas as vezes, sai assim:

./ping.sh
timeCompare foi de 1050.0
./ping.sh: line 5: [: 1050.0: integer expression expected
ATENCAO: A LATENCIA FOI DE
10.5


Alguém sabe o pq deste erro: integer expression expected ?

Estou usando o Linux Mint Debian Edition.

Grato;

Eder


Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. float

Enviado em 30/07/2014 - 10:06h

O valor de timeCompare é:

1050.0

e o [ -lt ] só aceita inteiros. Esse '.' (ponto) do número é que está dando problema.

Antes de processar esse número, você pode retirar tudo após o ponto, para deixar somente a parte inteira.

timeCompare = $(echo $convTime | sed 's/\..*//')"

só modifiquei o seu sed. Agora ele retira o ponto e a parte decimal.

Abraços

3. Re: Filtra o ping

Enviado em 30/07/2014 - 10:51h

Obrigado amigo, agora deu certo. Estava dando um erro, aí descobri que não pode ter espaço depois do sinal de =.

Att;

Eder

4. Shell Script

Enviado em 20/11/2014 - 01:13h

Não esquece de colocar [RESOLVIDO].


be fun :)

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder