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?