Testar ping e enviar email [RESOLVIDO]

1. Testar ping e enviar email [RESOLVIDO]

Jocimar
canhotojam

(usa CentOS)

Enviado em 08/05/2013 - 10:39h

Pessoal,

preciso configurar uma rotina em shellscript, no qual testo a resposta de um ping, e dependendo da resposta, eu continuo testando até que mude o status do mesmo (enquanto o host estiver respondendo, ok, quando parar, preciso tomar uma ação).
A ação que preciso tomar, é enviar um email sinalizando que o host parou de responder, até ai beleza; o que eu preciso, é que quando ele enviar o email, envie uma unica vez, e que só vai enviar novamente quando o host voltar a responder.

No momento, cheguei nessa parte do script, mas não sei como fazer o mesmo parar de enviar email quando já tiver enviado, e voltar a enviar quando o host voltar.
Uso o zimbra para serviço de email interno:

=============================================================================================================

while :; do

PING=`ping -c 1 192.168.X.X | grep 64\ bytes | awk '{print $6}' | cut -c5-7`

if [ "$PING" == "126" ]

then

echo "HOST de Pé" > /var/log/status_host

else

(echo "Subject: Host Down - `date +%d/%m/%Y-%kh%Mm`";echo "Sem conectividade com o HOST") | /opt/zimbra/postfix/sbin/sendmail ti@mail.com

fi

done

==============================================================================================================

Se o host cair, ele fica mandando email direto, não consegui encontrar uma forma dele parar, assim que já tiver enviado o email; com certeza é pura lógica, acredito que devo usar um contador para tal, mas não sei onde ainda.

Como devo proceder?


  


2. Re: Testar ping e enviar email [RESOLVIDO]

Eriton Almeida
eritonalmeida

(usa Debian)

Enviado em 08/05/2013 - 11:53h

while :; do

if ping -c1 192.168.X.X > /dev/null ; then

if [ -f /var/log/notify_ping ]; then

(echo "Subject: Host Voltou - `date +%d/%m/%Y-%kh%Mm`";echo "A conectividade com o HOST voltou") | /opt/zimbra/postfix/sbin/sendmail ti@mail.com
rm -f /var/log/notify_ping

else

echo "HOST de Pé" > /var/log/status_host

fi

else
if [ ! -f /var/log/notify_ping ] ; then

(echo "Subject: Host Down - `date +%d/%m/%Y-%kh%Mm`";echo "Sem conectividade com o HOST") | /opt/zimbra/postfix/sbin/sendmail ti@mail.com
touch /var/log/notify_ping

fi

fi


3. Não deu certo

Jocimar
canhotojam

(usa CentOS)

Enviado em 08/05/2013 - 12:27h

eritonalmeida, inclui um "done" no final do seu script pra fechar o while, porém não deu certo, ele ficou enviando os dois emails agora.


4. Re: Testar ping e enviar email [RESOLVIDO]

Eriton Almeida
eritonalmeida

(usa Debian)

Enviado em 08/05/2013 - 15:53h

Você deve ter feito algo errado, pois eu testei o script e funcionou.

Envia um email quando tiver fora e outro quando voltar.


5. Ok.

Jocimar
canhotojam

(usa CentOS)

Enviado em 08/05/2013 - 16:42h

Resolvido, ajustei o comando ping e funcionou!

Valeu!!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts