Removendo arquivos com exceção do mais recente
Publicado por jotacomm em 25/10/2008
Olá, pessoal
Quando trabalhamos com os arquivos de log do PostgreSQL, por exemplo, dependendo de como está a configuração (arquivo postgresql.conf) pode ser que sejam gerados vários arquivos de log. Se temos um hd não tão grande isso pode ser um problema.
Descrevo aqui uma forma de remover os arquivos mais antigos e deixar apenas o último arquivo pois o PostgreSQL está escrevendo nele. Uma boa prática poderia ser antes de remover estes arquivos gerar uma cópia em um outro computador ou a gravação dos mesmos em um cd ou dvd.
O comando abaixo faz isso: Apaga os arquivos deixando apenas o arquivo mais recente.
ls -t | grep -v `ls -t | head -n 1` | xargs rm -v
Um exemplo na prática:
O diretório de logs possui os seguintes arquivos:
postgresql-2008-10-24_231829.log
postgresql-2008-10-25_151120.log
postgresql-2008-10-25_151359.log
Executando:
ls -t | grep -v `ls -t | head -n 1` | xargs rm -v
removido `postgresql-2008-10-25_151120.log’
removido `postgresql-2008-10-24_231829.log’
Restou apenas o arquivo postgresql-2008-10-25_151359.log que é o arquivo mais atual.
Fiquem a vontade para comentários.
[]s
joao cosme jr disse
grande jota, a melhor saida para isso no meu caso é o bom e velho logrotate!
jotacomm disse
Grande João…
O logrotate com certeza é outra saída.. A minha idéia era propor uma outra solução ao logrotate.
Idéias são sempre bem-vindas
Abraços meu velho