Configure um serviço que elimine automaticamente arquivos específicos de uma pasta

2

Eu tenho uma pasta que se conecta a um registrador de tempo de hardware. Os dados são muito grandes e eu só desejo manter as últimas 5 horas de dados. Esta pasta; no entanto, também tem alguns arquivos de configuração, como o myconfig.ini.

Como posso configurar um serviço automático que exclui automaticamente todos os arquivos de uma pasta, exceto por alguns?

    
por dassouki 01.11.2010 / 16:00

5 respostas

4

A adição de um comando find ao cron funcionaria para você?

find /path/ -type f -mtime +5 -name '*.log'

Você pode colocar camadas extras para encontrar apenas os arquivos desejados. -mtype é a parte limitadora de data que localiza arquivos modificados pela última vez há mais de 5 dias. Você pode mudar isso para apenas olhar para a criação ou até mesmo os tempos de acesso (se você não estiver usando noatime no seu fs)

Quando você estiver obtendo os arquivos corretos, coloque -exec rm {} \; no final. Você poderia usar -delete , mas isso desmoronará se você tiver muitos arquivos sendo excluídos de uma só vez. Só faça isso quando tiver certeza!

Quando você quiser programá-lo, su na conta de usuário correta (a pessoa que possui os arquivos) e, em seguida, executar crontab -e . Você pode então escrever o comando e quando você sair, ele será executado na programação que você definiu. Você pode ler mais sobre o cron aqui:

link

    
por Oli 01.11.2010 / 16:36
0

Você pode usar logrotate . Está instalado por padrão; verifique a página de manual para obter instruções.

    
por mgunes 01.11.2010 / 16:25
0

Isso deve remover qualquer coisa modificada no último dia. Eu sugiro colocá-lo em um cronjob diário. Certifique-se de TESTE antes de implementar ... e tenha em mente que, uma vez que ele trabalha em arquivos por data modificada, ele não é específico de um arquivo (ou seja, se você modificar seu myconfig.ini, da próxima vez que for executado, ele pode matar seu myconfig.ini .

find /directory_path -type f -mtime -1 -exec rm{} \;

Isso obviamente tem algumas desvantagens, mas pode pelo menos ser um bom começo.

    
por nathwill 01.11.2010 / 16:27
0

O Red Hat / Fedora / Cent tem um pequeno script chamado tmpwatch que você pode facilmente passar para o Ubuntu.

    
por C.J. Steele 01.11.2010 / 16:45
-1

Com uma abordagem um pouco diferente: por que não configurar um trabalho de frequência de 5 horas para renomear o diretório de coleções atual e criar um novo diretório de coleções atual? Você pode processar / arquivar / excluir manualmente ou automaticamente os diretórios individuais de 5 horas.

    
por outofstep 01.11.2010 / 18:15