sexta-feira, 30 de dezembro de 2011

Limpeza de Logs DB2 7

Quem trabalha com DB2 sabe... mesmo que exista gigas de espaço em disco uma hora a limpeza será necessária.

Esse script pode ser usado diariamente, um pré requisito para que funcione é que um backup tenha sido feito na data de execução (pode ser adaptado)

Não esqueça se substituir BASE pela sua base de dados, e assuma os riscos de estar usando algo que viu em um blog ^^


#!/bin/bash
# Limpesa de logs do DB2 com base no Backup
# Remove, Clear, db2 logs need backup online in day
#

BASE=BASE
SQLOGDIR=`db2 "get db cfg for $BASE" | grep "Path to log files" | cut -f2 -d"="`
cd $SQLOGDIR
pwd
LOGS=`ls -ltr *.LOG | awk {'print $8'}`
DATA=`date +"%Y%m%d"`
STOP=`db2 "LIST HISTORY BACKUP ALL FOR $BASE" | grep $DATA| grep LOG| awk {'print $6'}`
echo $STOP
test $STOP
if [ $? -ne 0 ];then
echo "Backup not found"
############## MAIL #################
(:
echo 'HELO mailserver';sleep 1
echo 'mail From: emaildosuporte';sleep 1
echo 'rcpt To: emaildosuporte';sleep 1
echo 'data';sleep 1
echo 'subject: ' "Servico Limpesa de LOG $BASE";sleep 1
echo 'Sender: emaildosuporte';sleep 1
echo 'To: emaildosuporte';sleep 1
echo '';sleep 1
echo "Atencao problemas ao localizar Ticket do backup"
echo '.';sleep 1
echo 'quit' ;) | netcat mailserver 25
####################################
exit 99
fi
echo $?
for i in `echo $LOGS`
do
[ "$i" = "$STOP" ]
if [ $? -eq 0 ];then
break
else
rm -f $i
fi
done