Como excluir o conteúdo do diretório com mais de um dia com perl no crontab

0

Como mencionado no título, estou tentando excluir arquivos com mais de um dia dentro de um diretório com muitos arquivos (sem excluir o diretório) - o backup do diretório é feito por um servidor rsnapshot remoto não precisa mais dos arquivos fonte assim que eles são copiados, o problema é que

find /directory/* -mtime +1 -delete

dá um erro ' lista de argumentos por muito tempo ' já que existem muitos arquivos (eles não são tão grandes assim, são apenas muitas fotos e pequenos vídeos de uma câmera de segurança que trabalha com movimento software - o que é ótimo por sinal;)

Eu tropecei neste comando que eu poderia usar com o crontab:

perl -e 'for(<~/test1/*>){((stat)[9]<(unlink))}'

mas eu realmente não entendo este comando, como eu entendi é algum tipo de loop. Ele realmente funcionou em um diretório de teste que eu criei (test1 obviamente) com um monte de arquivos de teste que eram todos mais jovens do que um dia, eu não acho que o argumento 'mais antigo que' é mesmo em aqui ..

Como eu iria sobre isso? Sinta-se à vontade para modificar minha pergunta se não estiver claro.

    
por deltagreen88 17.05.2017 / 19:14

2 respostas

1

find é recursivo. Você não precisa fazer find /directory/* , apenas use:

find /directory/ -mtime +1 -delete
    
por muru 17.05.2017 / 19:20
0

Se find /directory/* -mtime +1 -delete produzir os arquivos corretos, mas apenas uma lista longa demais, o que dizer:

% bl0ck_qu0te%

Ou grave primeiro a saída em um arquivo e depois processe o arquivo. Muitos caminhos levam a Roma ...:)

    
por user680858 18.05.2017 / 19:27