Melhor maneira de excluir uma grande quantidade de arquivos por data

2

Então, eu tenho uma pasta com muitos arquivos, eles são gerados por segundo e precisam ser mantidos. Eu só posso deletá-los depois de 90 dias, então, como você pode imaginar, eu geraria muitos arquivos e depois do 90 dias, posso excluir os arquivos com mais de 90 dias. Mas, estou preso na parte em que procuro esses arquivos, já que tenho muito, o sistema reclama que a lista é muito grande e por isso não consigo removê-los.

Qual é a melhor solução para que eu possa passar isso? Os nomes de arquivos estão no modo de registro de data e hora, então eu poderia começar com isso, mas quero ter certeza de que todos os arquivos serão deletados depois de algum tempo ....

Eu tentei esses métodos

rm -rf *
find /path/to/files/ -type f -name '*.ts' -mtime +90 -exec rm {} \; 

Também consegui criar um script para excluir por nome de arquivo, mas com esse método não tenho garantia de que todos os arquivos foram excluídos.

    
por Lucas César 03.01.2018 / 13:19

1 resposta

2

Se os arquivos não forem modificados após a criação inicial, você poderá excluir se eles não tiverem sido modificados em mais de 90 dias:

find /path/to/folder -mtime +90 -delete

ou

find /path/to/folder -mtime +90 -exec rm {} +

(para versões de find que não suportam a ação -delete ).

Por uma questão de segurança, você deve usar primeiro uma versão não-destrutiva deste comando e garantir que ele irá deletar exatamente o que você deseja excluir, especialmente se você pretende automatizar esta ação via cron ou similar, eg :

find /path/to/folder -mtime +90 -print
    
por 03.01.2018 / 13:24