Eu gostaria de executar um trabalho cron noturno que exclua todos os arquivos em uma pasta que não foram acessados em uma semana ou mais. Qual é a maneira mais eficiente de fazer isso no bash?
Eu gostaria de executar um trabalho cron noturno que exclua todos os arquivos em uma pasta que não foram acessados em uma semana ou mais. Qual é a maneira mais eficiente de fazer isso no bash?
Respostas:
Você quer a find
ferramenta .
find folder -depth -type f -atime +7 -delete
(Isso excluirá todos os arquivos ( apenas arquivos regulares , sem canais, dispositivos especiais, diretórios, links simbólicos) na pasta fornecida e todos os subdiretórios (recursivamente) nos quais o último tempo de acesso for superior a 7 dias atrás.)
-type f
lá para garantir que ele exclua apenas arquivos, não diretórios inteiros.
Convém verificar o tmpwatch
que pode ser colocado em um trabalho cron. Não há necessidade de criar o seu próprio find
. No RHEL está no tmpwatch
RPM.
find
.
find
pode filtrar com base no atime. A "correção" do atime depende da configuração (vejanoatime
), no mínimo.