shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [shell-script] script ping


From: Gabriel Henrique
Subject: RE: [shell-script] script ping
Date: Tue, 12 Sep 2006 18:01:15 -0300

Olá amigo!

 

Não sei se entendi muito bem sua pergunta, mas creio que o grep resolve o
problema.

 

Uma sugestão seria trocar o 

VAR="$( tail -1 /tmp/ping | cut -d' '  -f2-3 )"
por

VAR="$( grep “100% packet loss” /tmp/ping | wc -l )"

 

Assim $VAR poderá ter os valores 0 (não possui a ocorrência) ou 1 (possui a
ocorrência)

 

Sendo assim,

 

if [[ $VAR = 0 ]]

then

            echo “$target ok”

else

            echo “$target falhou”

fi

 

e pronto!

 

flw

  _____  

From: address@hidden
[mailto:address@hidden] On Behalf Of pablo freitas
Sent: terça-feira, 12 de setembro de 2006 16:41
To: address@hidden
Subject: [shell-script] script ping

 

Pessoal, estou com uma dúvida para fazer o script para varrer o ip, dando o
comando ping, o meu programa está + ou - assim:
  #!/bin/bash
{
  rm -rf /tmp/ping
  clear
  echo 'digite o IP desejado(ex.: 10.13.1.): '; read ip
  echo 'digite o inicio do ultimo IP(ex.: 1): '; read inicio
  echo 'digite o termino do IP(ex.:250 ): '; read final
  for i in $(seq $inicio $final) ; do
          target="${ip%\.}.${i}"
        ping -c 2 $target > /tmp/ping
        VAR="$( tail -1 /tmp/ping | cut -d' '  -f2-3 )"
        if test "$VAR" = "pipe 3"
        then
                echo "$target falhou"
        else
                echo "$target ok"
        fi
  done
  exit

  Eu reparei que alguns itens:
  -Quando o IP está fora, ele retorna:
   
  2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 999ms
, pipe 3

  - IPs não retornam o pipe, ele retorna "100% packet pass", e ele imprime
no "$target ok" (isso é lógico, pq eu fiz o teste para pipe 3):
   
  2 packets transmitted, 0 received, 100% packet loss, time 999ms

  - Quando o IP existe na rede, ele retorna "pipe 2" 
   
  2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 3.461/3.633/3.805/0.172 ms, pipe 2

  e eu ja fiz o seguinte teste:
   
  if test "$VAR" = "pipe 2"
        then
                echo "$target ok"
        else
                echo "$target falhou"
        fi

  Só que retorna todos IPs ok. E eu não entendi o pq.
  E eu queria saber se alguem conhece algum comando + ou -, assim:
   
  se existir no arquivo a palavra '100% packet loss' , 
        imprime falha
  então
        imprime ok
   
  ou
   
  se retornar pipe 2
        imprime ok
  então
        imprime falha
   
  OBRIGADO!

            
---------------------------------
Yahoo! Search
Música para ver e ouvir: You're Beautiful, do James Blunt

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]