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

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

RE: Teste automatico pra rede2


From: Augusto, Alexandre
Subject: RE: Teste automatico pra rede2
Date: Mon, 5 Jul 2004 13:11:58 -0500

Valeu Rodolfo,
Isso deve dar certo, porem ainda não está dando ...
acho que é problema de lógica
as duas checagens, ping e telnet estão dando "falso/positivo"
se alguem puder ajudar, segue o script inteiro 

abraço

Alexandre

#######---------------------

#!/bin/ksh
#####################################------------###########################
###################
#scrpit que testa conexoes antes de instalar o Opsware!

# Alexandre Dust
# versao 0.01
# testa com ping nos nomes, telnet nas portas, e grava em log pra ser
enviado pra address@hidden caso haja problemas
#####################################------------###########################
###################
trap 'echo "O Script foi parado com <CTRL+C> com sinal trap... " ; exit 1' 1
2 3 15
UNAME=$(uname)
PINGCOUNT=5
PACKETSIZE=56
typeset -u PINGNODES
PINGNODES="TRUE"
#DIR=$(pwd)
HOSTLIST="hostlist.txt"
if  [ $HOSTLIST ]
then
        HOSTLIST=$(cat $HOSTLIST |grep -v '^#')
        else
                echo "ERROR: cade o arquivo chamado $PINGFILE ?"
                echo "A Lista dos arquivos dos hosts nao foi encontrda"
        exit 2
fi
PINGSTAT=3
PINGSTAT2=3
ESTEHOST=$UNAME
SAIDA="ping_log"
integer  INTERVAL="1"

## Comeca as funcoes aqui
function ping_host
{

HOST=$1
case $UNAME in
AIX|Linux)
        ping -c${PINGCOUNT} $HOST 2>/dev/null
        ;;
HP-UX)
        ping $HOST $PACKETSIZE $PINGCOUNT 2>/dev/null   
        ;;

SunOS)
        
        ping -s $HOST $PACKETSIZE $PINGCOUNT 2>/dev/null        
        ;;
*)
                
        echo " ERROR : Sistema operacional desconhecido -$#"
        echo "\n Saindo ... ... ...\n"
        exit 1
esac
}
ping_host

function ping_no
{
 if [[ $PINGNODES = "TRUE" ]]
 then
         echo " esperando  ... ... ..."
         for HOSTPING in $(echo $HOSTLIST)
         do
                 echo " ZZzz...  pingando --> ${HOSTPING} ... "
#Pinga o host $PINGCOUNT vezes e pega o valor para os pings recebidos de
volta
                sleep $INTERVAL
        PINGSTAT=$(ping_host $HOSTPING |grep "packet" |awk '{print $3}' >
$SAIDA)

        ## pega o resultado do ping e checa se o valor e igual a zero

        if [[ -z "$PINGSTAT" && "$PINGSTAT" = '' ]]
        then
                echo "Host desconhecido"
                continue
        fi
        if (( PINGSTAT == 0))
        then
                echo " Host desconhecido, testando + uma vez ..." 
        sleep $INTERVAL
        
        PINGSTAT2=$(ping_host $HOSTPING |grep "packet" |awk '{print $3}')
        if (( PINGSTAT2 == 0))
        then 
                echo "Sem chance, Host desconhecido mesmo"
        else
                echo "OK"       
        fi
else
                echo "OK"
        fi
        done
        fi
}
ping_no

#Comeca o teste do telnet

TELPORT="1001,1003,1004,1008"
LOG="telnet_log.txt"
SERVIDORES="serversClosed.txt"
function telnet_ops
{
 if [[ $PINGNODES = "FALSE" ]]
 then
         echo " esperando  ... ... ..."
 else
         for HOSTPING in $(echo $HOSTLIST)
         do
                 for TELPORT in $(echo $TELPORT)
                 do
                         echo " ZZzz... tentando telnet nas portas -->
${TELPORT}"
   (sleep 1 ; echo 33 ; sleep 1 ; echo quit) | telnet ${HOSTLIST}
${TELPORT}> /dev/null 2> $LOG 

                         if [ `grep refused $LOG` ]; then
                                echo "$HOSTLIST $TELPORT  *** Not OK   ***"
                         else
                                echo "$HOSTLIST $TELPORT  *** OK ***"
                         fi
                   done < $SERVIDORES
          done
fi
}
telnet_ops 

############---------------------



-----Original Message-----
From: Rodolfo Villanova
[mailto:address@hidden] 
Sent: segunda-feira, 5 de julho de 2004 10:16
To: address@hidden
Subject: RES: [shell-script] Teste automatico pra rede


Fala, Alexandre,

Já faz um bom tempo que lancei uma pergunta sobre esse mesmo assunto nesta
lista.

Com a ajuda do Julio Neves, implementei um script que testa o serviço telnet
para cada endereço IP.

A parte interessante aqui é que separei os IPs e portas de serviço do corpo
do script, que não precisaria mais ser alterado caso seja necessário incluir
mais máquinas a serem testadas.

No recorte abaixo, segue o trecho que faz o desejado:

---------------------------
while read -r IP PORT resto
do
     (sleep 1 ; echo \033 ; sleep 1 ; echo quit) | telnet $IP $PORT >
/dev/null 2> $LOG
     if [ -z "`grep refused $LOG`" ]; then
        echo "$IP $PORT  ***  OK   ***"
     else
        echo "$IP $PORT  *** FALHA ***"
     fi
done < $SERVIDORES
---------------------------

Espero que essa sugestão te sirva de inspiração para implementares uma
versão que seja a mais adequada às necessidades do ambiente.

[]s
--------------------------
Rodolfo D. Gross Villanova

> -----Mensagem original-----
> De: Alexandre [mailto:address@hidden]
> Enviada em: segunda-feira, 5 de julho de 2004 09:26
> Para: address@hidden
> Assunto: [shell-script] Teste automatico pra rede
>
>
> o Netcat é legal ...
> Nagios ? pra testar rede via linha de comando ? ( não é monitoração, é 
> script pre install ) acho que não é o caso ...
>
> eu preciso dar telnet em 6 portas pra saber se elas estão ouvindo 
> preciso fazer algo que não dependa de nada instalado na máquina pois 
> vou trabalhar com Linux, Aix, HP-UX, Solaris em varias versões ... 
> nese caso o netcat nao atende ... tem que ser na base do script mesmo, 
> e em ksh... Num pode nem ser em perl. Alguem pode ajudar ?
>
> obrigado
>
> Alexandre
>
> --- Em address@hidden, Jorge Pereira <jorge@j...> 
> escreveu
> >  Ola, que tal você utilizar a ferramenta  nc?!? (NetCAT), acho que
> seria
> > bem melhor....
> > Se você está querendo algo para analize de rede procure pelo 
> > "nagios", pois e uma ferramenta excelente!!!! ok?
> >
> > ate mais!
> >
> > Alexandre escreveu:
> >
> > > Pessoal,
> > > Preciso fazer um testador automatico pra rede pra colocar junto 
> > > com um instalador de um software. Esse teste precisa pingar, dar 
> > > um telnet em 6 portas especificas, e rodar um trace gravando num 
> > > log, fazendo esses testes por nome e nao por IP.
> > > Eu ja consegui fazer a primeira parte, que é pingar por nome e
> > > retornar os erros, mas o telnet eu nao sei como pegar o retorno e
> > > classificar em OK, ou NotOK ...
> > > alguem pode ajudar ?
> > > Quando terminar esse brinquedo, eu mando pra lista comentado, pois
> > > acho que vai ser útil a muita gente ...
> > >
> > > abraço
> > >
> > > Alexandre
> > >
> > >
> > >
> > >
> > > ------------------------------------------------------------------
> > > ---
> > > Esta lista não admite a abordagem de outras liguagens de programação,
> > > como perl, C etc. Quem insistir em não seguir esta regra será
> moderado
> > > sem prévio aviso.
> > > ------------------------------------------------------------------
> > > ---
> > > Sair da lista: address@hidden
> > > ---------------------------------------------------------------------
> > > Esta lista é moderada de acordo com o previsto em
> > > http://www.listas-discussao.cjb.net
> > > ---------------------------------------------------------------------
> > >
> > >
> > >
> > > Yahoo! Grupos, um serviço oferecido por:
> > >
> <http://br.rd.yahoo.com/SIG=12a2qtue3/M=264105.3931087.6226562.158
> 8051/D=br=
> clubs/S=2137111254:HM/EXP=1089039333/A=2195395/R=0/SIG=11d1a28j5/*
> http://abr= il.assineabril.com/yahooespecial3>
>
> > >
> > > Assine Claudia
> > >
> <http://br.rd.yahoo.com/SIG=12a2qtue3/M=264105.3931087.6226562.158
> 8051/D=br=
> clubs/S=2137111254:HM/EXP=1089039333/A=2195395/R=1/SIG=11d1a28j5/*
> http://abr= il.assineabril.com/yahooespecial3>
>
> > > em
> > > 5x de R$ 18,96 Assine Info
> > >
> <http://br.rd.yahoo.com/SIG=12a2qtue3/M=264105.3931087.6226562.158
> 8051/D=br=
> clubs/S=2137111254:HM/EXP=1089039333/A=2195395/R=2/SIG=11d1a28j5/*
> http://abr= il.assineabril.com/yahooespecial3>
>
> > > em
> > > 5x de R$ 21,48
> > > Mais...
> > > Capricho
> > >
> <http://br.rd.yahoo.com/SIG=12a2qtue3/M=264105.3931087.6226562.158
> 8051/D=br=
> clubs/S=2137111254:HM/EXP=1089039333/A=2195395/R=3/SIG=11djt2d3m/*
> http://abr= il.assineabril.com/yahooespecial2>
>
> > > Manequim
> > >
> <http://br.rd.yahoo.com/SIG=12a2qtue3/M=264105.3931087.6226562.158
> 8051/D=br=
> clubs/S=2137111254:HM/EXP=1089039333/A=2195395/R=4/SIG=11djt2d3m/*
> http://abr= il.assineabril.com/yahooespecial2>
>
> > > Boa Forma
> > >
> <http://br.rd.yahoo.com/SIG=12a2qtue3/M=264105.3931087.6226562.158
> 8051/D=br=
> clubs/S=2137111254:HM/EXP=1089039333/A=2195395/R=5/SIG=11djt2d3m/*
> http://abr= il.assineabril.com/yahooespecial2>
>
> > > Nova
> > >
> <http://br.rd.yahoo.com/SIG=12a2qtue3/M=264105.3931087.6226562.158
> 8051/D=br=
> clubs/S=2137111254:HM/EXP=1089039333/A=2195395/R=6/SIG=11djt2d3m/*
> http://abr= il.assineabril.com/yahooespecial2>
>
> > > Exame
> > >
> <http://br.rd.yahoo.com/SIG=12a2qtue3/M=264105.3931087.6226562.158
> 8051/D=br=
> clubs/S=2137111254:HM/EXP=1089039333/A=2195395/R=7/SIG=11djt2d3m/*
> http://abr= il.assineabril.com/yahooespecial2>
>
> > >
> > >
> > >
> > >
> ----------------------------------------------------------------------
> --
> > > Links do Yahoo! Grupos
> > >
> > >     * Para visitar o site do seu grupo na web, acesse:
> > >       http://br.groups.yahoo.com/group/shell-script/
> > >
> > >     * Para sair deste grupo, envie um e-mail para:
> > >       address@hidden
> > >
> <mailto:address@hidden?subject=Unsubscrib
> e>
> > >
> > >     * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
> > >       Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
> > >
> > >
> >
> > --
> > Atenciosamente: Jorge Pereira
> > Técnico e Analista de Segurança em Redes Linux
> > Fone: +55 (81) 9606-7426 - (Recife/PE)
> > Site: http://www.jorgepereira.com.br/
> > E-mail: jorge@j..., jorge@i...
> > --
> >
> >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, 
> como perl, C etc. Quem insistir em não seguir esta regra será moderado 
> sem prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------

Links do Yahoo! Grupos









---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 


reply via email to

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