28 fev

Logrotate Realmente Simples

Fabio Mazzarino - 28/fev/2011

Diversão, Doses Diárias, Linux, Programação, Unix -

Cadê o Wally?

Um programa gerando dados diaraiamente através da crontab. Vários tipos de relatórios, logs, arquivos de controle… Tudo isso se acumulando no HD. Por um tempo isso iria passar desapercebido, mas com o tempo alguem iria notar, e acabaria sobrando pra mim. Já me adiantando a tudo isso achei melhor já implementar um método de rotação e eliminação de logs antigos.

Fiz tudo em um script que encapsula a chamada ao programa principal. Neste script já criei o nome dos logs e demais arquivos de forma a organizá-los por data. Não é essencial, mas considerando que a base de execução é diária, auxilia na identificação humana dos logs.


Desta forma:

NOW=`$DATE +"%Y%m%d%H%M%S"`
LOGFILE="${LOGDIR}/appname_${NOW}.log"
LOGMASK="appname_*.log"

Fiz o mesmo para os arquivos de relatórios e controle.

Agora falta apagar os arquivos mais antigos que N dias para removê-los. Fiz isso com uma única linha de um comando find:

RMDAYSOLD="+7"
$FIND -name "${LOGMASK}" -mtime $RMDAYSOLD -exec $RM -f{} \;

Note que no caso acima o parâmetro +7 é para selecionar os arquivos com mais de 7 dias desde a última modificação.

Tags: , , ,

Deixe Seu Comentário

Pesquisar


Publicidade