Logrotate Realmente Simples
Fabio Mazzarino - 28/fev/2011
Diversão, Doses Diárias, Linux, Programação, Unix -

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.
Deixe Seu Comentário