Script Para Monitorar Redes... Ajuda!! [RESOLVIDO]

1. Script Para Monitorar Redes... Ajuda!! [RESOLVIDO]

Cristiano dos Santos da Silva
maozinha_tribal

(usa Ubuntu)

Enviado em 31/01/2012 - 18:55h

Preciso de sjuda neste script;
de monitoramento de redes
ele ainda esta sendo criado

estou testando a saida dele com o comando echo...

mas ele não sai o echo da função... oque ha de errado??

###########################################################################

#!/bin/bash

IPLNK=199.9.3.1
IPSRV=199.9.3.5
LOCK_OK=0
LOCK_LNK=0
LOCK_SRV=0

while true; do
if ping -c 1 $IPLNK >> /dev/null && ping -c 1 $IPSRV >> /dev/null; then

if [ "$LOCK_OK" -eq 0 ]; then
echo "Tudo OK!!!! Primeiro Aviso e Email"
LOCK_OK=1
else
echo "Aviso!! Aviso!! Aviso !!!"
fi
else
if ! ping -c 1 $IPLNK >> /dev/null; then

if [ "$LOCK_LNK" -eq 0 ]; then
echo "Link Fora!!!! Primeiro Aviso e Email"
LOCK_LNK=1
else
Spider_Trap_Lnk
fi
else
if ping -c 1 $IPLNK >> /dev/null && ! ping -c 1 $IPSRV >> /dev/null; then
if [ "$LOCK_SRV" -eq 0 ]; then
echo "Server Fora!!!! Primeiro Aviso e Email"
LOCK_SRV=1
else
Spider_Trap_Srv
fi
fi
fi
fi
done

Spider_Trap_Lnk(){
while true; do

sleep 1
CONT=`expr $CONT + 1`
if [ "$CONT" -ge 3 ]; then
echo "Link Fora!!!! Segundo Aviso e Email"
CONT=0
fi

if ping -c 1 $IPLNK >> /dev/null; then
LOCK_OK=0
LOCK_LNK=0
break;
fi
done
}

Spider_Trap_Srv(){
while true; do

sleep 1
CONT=`expr $CONT + 1`
if [ "$CONT" -ge 10 ]; then
echo "Server Fora!!!! Segundo Aviso e Email"
CONT=0
fi

if ping -c 1 $IPSRV >> /dev/null; then
LOCK_OK=0
LOCK_SRV=0
break;
fi
done
}

#############################################################################


  


2. Re: Script Para Monitorar Redes... Ajuda!! [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 01/02/2012 - 17:03h

A primeira coisa é que a function deve estar num lugar antes da chamada dela no seu script ... tipo assim:

#!/bin/bash

#PARAMETROS
#----------------------------------------------------------
IPLNK=$1
IPSRV=$2
LOCK_OK=0
LOCK_LNK=0
LOCK_SRV=0


#FUNCTIONS
#----------------------------------------------------------
Spider_Trap_Lnk(){
while true; do

sleep 1
CONT=`expr $CONT + 1`
if [ "$CONT" -ge 3 ]; then
echo "Link Fora!!!! Segundo Aviso e Email"
CONT=0
fi

if ping -c 1 $IPLNK >> /dev/null; then
LOCK_OK=0
LOCK_LNK=0
break;
fi
done
}

Spider_Trap_Srv(){
while true; do

sleep 1
CONT=`expr $CONT + 1`
if [ "$CONT" -ge 10 ]; then
echo "Server Fora!!!! Segundo Aviso e Email"
CONT=0
fi

if ping -c 1 $IPSRV >> /dev/null; then
LOCK_OK=0
LOCK_SRV=0
break;
fi
done
}

#ROTINA PRINCIPAL
#----------------------------------------------------------

while true; do
if ping -c 1 $IPLNK >> /dev/null && ping -c 1 $IPSRV >> /dev/null; then

if [ "$LOCK_OK" -eq 0 ]; then
echo "Tudo OK!!!! Primeiro Aviso e Email"
LOCK_OK=1
else
sleep 2 #debug
echo "Aviso!! Aviso!! Aviso !!!"
fi
else
if ! ping -c 1 $IPLNK >> /dev/null; then

if [ "$LOCK_LNK" -eq 0 ]; then
echo "Link Fora!!!! Primeiro Aviso e Email"
LOCK_LNK=1
else
Spider_Trap_Lnk
fi
else
if ping -c 1 $IPLNK >> /dev/null && ! ping -c 1 $IPSRV >> /dev/null; then
if [ "$LOCK_SRV" -eq 0 ]; then
echo "Server Fora!!!! Primeiro Aviso e Email"
LOCK_SRV=1
else
Spider_Trap_Srv
fi
fi
fi
fi
done

Acho que este é um dos seus problemas ... se ainda der erro avisa.



3. Eu organizei o Codigo... ...

Cristiano dos Santos da Silva
maozinha_tribal

(usa Ubuntu)

Enviado em 01/02/2012 - 18:08h

Eu organizei o Codigo... ...

Todo Com Funções....
eu pesquisei no google em muitos sites gringos e
vi que tem que declarar mesmo as functions e depois invocar elas...

Tu tens razão fdmarp

ai vai o codigo refeito;

da uma analizada....

#!/bin/bash

#################################################################################################################

# ESTE SCRIPT TEM POR FINALIDADE
#ANALIZAR O LINK E O SERVIDOR DE
#ESTABELECIMENTOS COMERCIAIS
#E REPLICAR E-MAILS

#NÃO ESTA TOTALMENTE PRONTO!!!!

###################################################################################################################

# VARIAVEIS

##################################################################################################################


IPLNK=199.9.3.181
IPSRV=199.9.3.1
LOCK_OK=0



###################################################################################################################

# FUNCOES FILHAS

##################################################################################################################

#ANALIZA O LINK

Spider_Crab()
{
echo "Link Fora!!!! Primeiro Aviso e Email"
while true; do
MIN=$(date +%M)
if [ "$MIN" -eq "50" ] || [ "$MIN" -eq "55" ] || [ "$MIN" -eq "00" ]; then
echo "Link Fora!!!! Segundo Aviso e Email"
fi

if ping -c 1 $IPLNK >> /dev/null; then
LOCK_OK=0
break;
fi
done
}

#ANALIZA O SERVER

Spider_Trap()
{
echo "Server Fora!!!! Primeiro Aviso e Email"
while true; do
MIN=$(date +%M)
if [ "$MIN" -eq "50" ] || [ "$MIN" -eq "55" ] || [ "$MIN" -eq "00" ]; then
echo "Link Fora!!!! Segundo Aviso e Email"
fi

if ping -c 1 $IPSRV >> /dev/null; then
LOCK_OK=0
break;
fi

if ! ping -c 1 $IPLNK >> /dev/null; then
Spider_Crab
break;
fi
done
}

###################################################################################################################

# FUNCAO MAE

##################################################################################################################

#CUIDA DA REDE

Spider_Web()
{
while true; do
if ping -c 1 $IPLNK >> /dev/null && ping -c 1 $IPSRV >> /dev/null; then

if [ "$LOCK_OK" -eq 0 ]; then
echo "Tudo OK!!!! Primeiro Aviso e Email"
LOCK_OK=1
else
echo "Aviso!! Aviso!! Aviso !!!"
fi
else
if ! ping -c 1 $IPLNK >> /dev/null; then
Spider_Crab
else
if ping -c 1 $IPLNK >> /dev/null && ! ping -c 1 $IPSRV >> /dev/null; then
Spider_Trap
fi
fi
fi
done
}

#################################################################################################################

#CHAMA A FUNÇÃO PRINCIPAL

Spider_Web

# FIM


4. Re: Script Para Monitorar Redes... Ajuda!! [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 02/02/2012 - 13:02h

Cara ... testei aqui e funcionou legal!!!!

Fiz umas sugestões no seu script, buscando melhorar a performance ... mas não sei se pra vc funciona, né! ... ai vc quem avalia.

A maior mudança foi na estrutura do Spider_Web
=> cada vez que o ping -c aparece no if ele é executado realmente, então na Spider_Web vc
validava "if ping -c 1 $IPLNK >> /dev/null && ping -c 1 $IPSRV >> /dev/null"
se a resposta fosse não ... ai validava "if ! ping -c 1 $IPLNK"
se a resposta fosse não ... ai validava "if ping -c 1 $IPLNK" e "if ! ping -c 1 $IPSRV"

=> mudei para: verifica se o link falhou, se não ... verifica o server ... se não ... tudo OK

Espero ter ajudado ... precisando ... tamos ai!!





#!/bin/bash

#################################################################################################################
# ESTE SCRIPT TEM POR FINALIDADE
# ANALIZAR O LINK E O SERVIDOR DE
# ESTABELECIMENTOS COMERCIAIS
# E REPLICAR E-MAILS
# NÃO ESTA TOTALMENTE PRONTO!!!!
###################################################################################################################
# VARIAVEIS
##################################################################################################################

IPLNK=199.9.3.181
IPSRV=199.9.3.1
LOCK_OK=0
TEMPO=300 #tempo entre os e-mails (segundos)

###################################################################################################################
# FUNCOES FILHAS
##################################################################################################################

#ANALIZA O LINK

Spider_Crab()
{
echo "Link Fora!!!! Primeiro Aviso e Email"
ALERT_TIME=$(date +%S)
n_alerta=1
while ! ping -c 1 $IPLNK >> /dev/null; do
if [ "$(date +%S)" -gt "$(($ALERT_TIME + $TEMPO ))" ]; then
ALERT_TIME=$(date +%S)
n_alerta=`expr $n_alerta + 1`
echo "Link Fora!!!! Aviso numero $n_alerta e Email"
fi
done
LOCK_OK=0
}

#ANALIZA O SERVER

Spider_Trap()
{
echo "Server Fora!!!! Primeiro Aviso e Email"
ALERT_TIME=$(date +%S)
n_alerta=1
while ! ping -c 1 $IPSRV >> /dev/null; do
if [ "$(date +%S)" -gt "$(($ALERT_TIME + $TEMPO ))" ]; then
ALERT_TIME=$(date +%S)
n_alerta=`expr $n_alerta + 1`
echo "Server Fora!!!! Aviso numero $n_alerta e Email"
fi
done

LOCK_OK=0
}

###################################################################################################################
# FUNCAO MAE
##################################################################################################################

#CUIDA DA REDE

Spider_Web()
{
while true; do

if ! ping -c 1 $IPLNK >> /dev/null; then
LOCK_OK=0
Spider_Crab
elif ! ping -c 1 $IPSRV >> /dev/null; then
LOCK_OK=0
Spider_Trap
else
if [ "$LOCK_OK" -eq 0 ]; then
echo "Tudo OK!!!! Primeiro Aviso e Email"
LOCK_OK=1
else
echo "Aviso!! Aviso!! Aviso !!!"
fi
fi
done

}

#################################################################################################################
#CHAMA A FUNÇÃO PRINCIPAL
#################################################################################################################

Spider_Web

# FIM


5. Boa Modificação...

Cristiano dos Santos da Silva
maozinha_tribal

(usa Ubuntu)

Enviado em 02/02/2012 - 22:14h

Hoje é feriado e eu não to no trabalho pra verificar o script
mas eu vi que foram meio que radicais as mudanças nele...
principalmente nas funções filhas...
aquela ideia do $ALERT_TIME foi otima...
e a Spider_Web ficou mais enxuta mesmo....
eu vou dar umas modificadas....

mas como diz Murphi... quando tu axa a solução de um problema aparecem mas 10 piquenos problemas.... lá vai...

Dada a seguinte situação...

Imagina um rede com mais de 50 filiais.. este script funciona bem para o link de 1 loja....

eu terei que criar um outro shell Maior chamando os sub shells de cada lojas e retornando 3 valores, OK, LINK OFF ou SERVER OFF...

e ainda criar um interface ou no Terminal com cores... vere amarelo e vermelho... ou uma CGI em HTML ou PHP, fora o sendmail horrivel de configurar...




6. Re: Script Para Monitorar Redes... Ajuda!! [RESOLVIDO]

hugo
hugogpd

(usa Ubuntu)

Enviado em 02/02/2012 - 23:48h

pow fico grande esse negócio, por 300 mango eu faço isso numa boa, me da umas 2 horas e duas latinhas de cerveja e fica pronto heheh


7. RESOLVIDO

Cristiano dos Santos da Silva
maozinha_tribal

(usa Ubuntu)

Enviado em 03/02/2012 - 23:38h

Valeu fdmarp ...

ja foi de grande apio tuas ideias...
me deram uma grande clareada e eu não vou pagar 300 pila pra ninguem.... vou fazer na mão.. o software é livre a a ajuda é solidaria... porisso que a comunidade é forte!!

agora to pensando em desenvolver a front End.. mas é uma outra historia... Obrigado!


8. Re: Script Para Monitorar Redes... Ajuda!! [RESOLVIDO]

Joao
stack_of

(usa Slackware)

Enviado em 03/02/2012 - 23:44h

Você pode utilizar o mailx e o postfix para enviar emails.


9. Re: Script Para Monitorar Redes... Ajuda!! [RESOLVIDO]

hugo
hugogpd

(usa Ubuntu)

Enviado em 04/02/2012 - 10:17h

que é isso, tava zuando, se eu tivesse tempo (pra estudar tbm) até dava uma mãozinha!
Boa sorte






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts