Script para excluir arquivos com mais de 30 dias

5

O script de shell não deve excluir nenhum arquivo em * root dir *. Meu caminho * será como / export / home / ftp / ...

Eu fiz algumas pesquisas e descobri a maneira de encontrar e excluir os arquivos com mais de 30 dias de um caminho específico, usando comandos find e exec.

* localizar / exportar / home / ftp / -tipo f -mtime +30 -exec rm -f {} \;

Mas, de acordo com o requisito, eu quero excluir console.log e server.log somente desse diretório e excluir os arquivos restantes.

Por favor, me ajudem nessa questão.

    
por Jayakrishnan T 15.12.2010 / 05:32

5 respostas

5

Supondo que você realmente precise usar find para recorrer a subdiretórios:

find /export/home/ftp \( -name console.log -or -name server.log \) -mtime +30 -exec rm -f {} +
    
por 15.12.2010 / 05:44
10

Se você só precisar remover o antigo server.log e o console.log todo mês, também poderá usar logrotate , que provavelmente já está sendo executado no RHEL. Um trecho de configuração como este funcionará em /etc/logrotate.d/*.conf ou onde quer que os arquivos de configuração estejam localizados em seu sistema.

# rotate server.log and console.log every month
# delete, not compress, old file

/export/home/ftp/server.log /export/home/ftp/console.log {
    monthly
    rotate 0
}

Um cron mensal personalizado, como sugerido acima, também funcionará bem. De fato, como o logrotate é executado a partir do cron, você poderia considerar isso como uma extensão do cron. HTH.

    
por 15.12.2010 / 06:37
2

Por que não usar apenas um cron mensal?

@monthly / usr / bin / rm -f console.log @monthly / usr / bin / rm -f server.log

Definitivamente, seria mais seguro fazer as coisas com o find.

    
por 15.12.2010 / 05:38
0

Verifique esta ferramenta útil do debian tmpreaper

    
por 20.12.2012 / 07:17
0

Uma alternativa seria usar xargs, que aparentemente é mais eficiente - link

Então você poderia fazer algo assim:

find /export/home/ftp -maxdepth 1 \( -name console.log -or -name server.log \) -mtime +30 | xargs -O -r rm
    
por 20.12.2012 / 08:16