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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Unir 2 scripts em 1


From: Luciano Bonifacio
Subject: Unir 2 scripts em 1
Date: Wed, 10 Dec 2003 14:46:43 -0300 (ART)

Amigos,

Em anexo, dois shell´s que tenho aqui, que foram
criados para monitorar os processos de CTI...

O primeiro deles (monitora_ts) apenas verifica se o
processo 'tssrv' esta com o mesmo PID. Caso nao esteja
igual, ou nao tenha ele vai copiar os logs para
analise posterior. Estavamos com problemas de queda
dessa aplicacao.

O segundo (email_ts) apenas verifica o tamanho do log.
Se for diferente, Ok, se for igual, significa que o
processo "congelou", nao esta gerando nenhum evento e
envia um email. Como o CallCenter aqui nao é 24hrs,
tem ainda uma condicao de horario, que é entre 08 e 22
hrs...   Foi a maneira que acharam para descobrir o
momento que a aplicacao travava.


Entao, gostaria de criar um unico script, que
verificasse o PID e se este for diferente, enviar o
email.
Caso o PID esteja ok, ele seguisse, verificando o log.
E novamente, enviasse o e-mail se o log for do mesmo
tamanho.


Acho que da para fazer, mas ainda nao domino os "if",
"while"... E se puderem explicar  a estrutura depois,
melhor.


Agradeco a ajuda.

[]´s,
Luciano




______________________________________________________________________

Yahoo! Mail: 6MB, anti-spam e antivírus gratuito! Crie sua conta agora:
http://mail.yahoo.com.br
  ----------

#!/usr/bin/sh
#
# Verifica se o processo TS "congelou" e envia um email avisando
#

TS_FILENAME=TSDefinity.log
MYLOG=/opt/quintus/tools/email.log

#obtem o tamanho do log do TS
FILESIZE=`ls -l /opt/quintus/qes56/logs/$TS_FILENAME | awk '{print $5}'`
#echo "tamanho atual do log = $FILESIZE"

FLAG=1

while [ 1 ]
do
        sleep 300

        HOUR=`date +%H`
        if [ "$HOUR" = "08" ]
        then
                FLAG=1
        fi
        if [ "$HOUR" = "22" ]
        then
                FLAG=0
        fi
        if [ "$FLAG" = "1" ]
        then    
            #obtem o novo tamanho do log
            NEW_FILESIZE=`ls -l /opt/quintus/qes56/logs/$TS_FILENAME | awk 
'{print $5}'`
            #echo "tamanho do novo log = $NEW_FILESIZE"
            if [ "$FILESIZE" = "$NEW_FILESIZE" ]
            then
                echo "`date` - Identificado que o TS congelou..." >> $MYLOG

                mailx -s "Falha no Processo TS" address@hidden < 
/opt/quintus/tools/mensagem
            else
                FILESIZE=$NEW_FILESIZE
                #echo "FILESIZE agora eh: $FILESIZE"
            fi
        fi
done

  ----------

#!/usr/bin/sh
#
# Script para monitorar o TS
#

LOGDIR=/opt/quintus/tools
LOGFILE=$LOGDIR/monitora.log
TSLOGDIR=/opt/quintus/qes56/logs

# Obtem o PID do processo TS que esta rodando
PID=`ps -ef | grep tssrv | grep -v grep | awk '{print $2}' `
echo "$0: PID do TS = $PID" >> $LOGFILE

while [ 1 ]
do
        sleep 10
#        PIDNEW=`ps -ef | grep tssrv | grep -v grep | awk '{print $2}' `
        PIDNEW=`ps -ef | grep 3d2e17f8000000000af1817823330002 | grep -v grep | 
awk '{print $2}' `
        if [ "x$PID" != "x$PIDNEW" ]
        then
                echo "`date` : O PID mudou! - novo PID = $PIDNEW" >> $LOGFILE
                PID=$PIDNEW
                echo "iniciando copia dos arquivos..." >> $LOGFILE
                cp -p $TSLOGDIR/ORB.log $LOGDIR
                cp -p $TSLOGDIR/TSDefinity.log $LOGDIR
                
                echo "copia concluida. \n---------------- " >> $LOGFILE
        fi
done
#








[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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