[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Como evitar um "loop"
From: |
Alejandro Flores |
Subject: |
Re: [shell-script] Como evitar um "loop" |
Date: |
Wed, 31 Dec 2003 11:20:10 -0200 |
Olá,
Você pode fazer o seguinte:
NOT_TEMP="/tmp/notificado"
...
verifica()
{
qtdatv=`ps -wef |egrep "$agente" |egrep -v grep |wc -l`
if [ "$qtdatv" -lt "$qtd" ]
then
if [ -f $NOT_TEMP ]; then
echo "Notificação ja enviada!"
runStats $agente
else
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
touch $NOT_TEMP
runStats $agente
fi
else
echo -e Todos os $agente Estao Ativos - Total: "$qtdatv"
if [ -f $NOT_TEMP ]; then
# Parece que é a primeira vez que roda após os agentes
# voltarem
cat $NOT_TEMP | mail address@hidden
rm -f $NOT_TEMP
fi
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
function runStats {
echo '\n\nAgente: $1\n' >> $NOT_TEMP
echo 'Parado em: `date +"%d/%m/%Y %H:%M"`\n' >> $NOT_TEMP
}
abraço!
Alejandro Flores