Então,
Como complemento ao POST de Agosto do ano passado, “Gerando LOG de execução de scripts“, segue simples função que utilizo em grande parte dos scripts, para manter os logs gerados pelo script, com no máximo 30000 linhas. Isso não deixa um logfile passar de aproximados 5Mb (elimina preocupações de espaço em disco comprometido por logfile gigantesco gerado pelo seu script):
LOGLIMIT=30000 # limite do log, medido em linhas
# AUTO-LIMPEZA GERAL NO LOG:
if [ `wc -l $LOG | awk ‘{print $1}’` -gt $LOGLIMIT ]; then
tail -5000 $LOG >> ${LOG}_autoclean
mv -f ${LOG}_autoclean $LOG
fi
O script que rodar a função acima, irá deixar no seu arquivo de log as últimas 5000 linhas, isso sempre que o logfile estiver com mais de 30000 linhas (a condição if comparando com o LOGLIMIT).
A única preocupação que o administrador deve ter neste caso é que se algum output em alguma situação precisar de mais de 30000 linhas, esta função irá deixar apenas as últimas 5000 então o administrador perderá algumas linhas para a análise caso seja importante.
Por: Hudson Murilo dos Santos
Referências: man bash