shell-script-pt
[Top][All Lists]
Advanced

[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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]