[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Como evitar um "loop"
From: |
Luis Augusto Kohlbach |
Subject: |
Como evitar um "loop" |
Date: |
Wed, 31 Dec 2003 09:03:21 -0200 |
Bom dia ,
Bem, escrevi um shell-script (bash) que monitora os agentes/programas
desenvolvidos em COBOL e que rodam nos servidores Linux e Unix , este monitor
serve para verificar a cada 120s (2 minutos) todos os agentes do cobol e os
programas de comunicação desenvolvidos em C, ele fica ativo no servidor
principal (Pentium IV Xeon com 2 processadores) e envia o estado dos
agentes/programas para o terminal, via e-mail e SMS. O envio do status quando
tudo esta normal, fica apenas rodando na tela do terminal e quando algum
agente/programa fica inativo, ele envia e-mail e msg SMS.
Segue abaixo o shell-script:
-------------------------------------------------------------------------------------------------------
cat ../exec/mon_agentes.scp
#================================================
#Verificar agentes/programas ativos <Versao 3>
#
#Criado em 02/12/2003 - address@hidden #
#Alterado em 17/12/2003 - address@hidden #
#
#
#Informa via terminal, e-mail e SMS (msg p/ cel)
#
#quando algum agente ou xcom esta fora.
#
#================================================
clear
verifica()
{
qtdatv=`ps -wef |egrep "$agente" |egrep -v grep |wc -l`
if [ "$qtdatv" -lt "$qtd" ]
then
echo "-------------------------------------" >lixo_crock
date >>lixo_crock
echo -e "Atencao! Agente "$agente" inativo!" >>lixo_crock
echo -e "Atencao! Agente "$agente" inativo!" | mail address@hidden
$exdir/SMSup SPC/SC "$agente" 04896085759
ps -wef |grep "$agente" |grep -v grep >>lixo_crock >/dev/null
cat lixo_crock
else
echo -e Todos os $agente Estao Ativos - Total: "$qtdatv"
fi
}
echo -e Iniciando em `date`
for i in `cat "$exdir"/mon_agentes.cfg |awk '{print $1}'`
do
agente=`echo $i|cut -d: -f1-1`
qtd=`echo $i|cut -d: -f2-2`
verifica
done
-------------------------------------------------------------------------------------------------------
Porém estou com uma questão que ainda não consegui resolver, se reparar na
linha que envia mensagem $exdir/SMSup SPC/SC "$agente" 04896085759, vai notar
que ela funciona da mesma forma que o envio de e-mail, porém a minha
preocupação eh que este shell-script entre em loop e comece a enviar e-mail's e
mensagens SMS sem parar, tomando conta da máquina e gerando um custo alto, caso
o problema não seja detectado cedo e resolvido.
Eis a questão , como posso "limitar" o envio de msg e mail's ? , e como poderia
montar um relatório para ter uma estatística semanal/mensal das paradas dos
agentes/programas ?
Agradeço desde já !
[As partes desta mensagem que não continham texto foram removidas]
- Como evitar um "loop",
Luis Augusto Kohlbach <=