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