Primeiro, este comando encontrará e excluirá todos os arquivos com mais de 7 dias em qualquer subdiretório /home
cujo nome comece por securityuser
:
find /home/securityuser* -mtime +6 -type f -delete
Você precisa -mtime +6
e não +7
porque -mtime
conta períodos de 24 horas. Conforme explicado na -atime
seção de man find
( -mtime
funciona da mesma maneira):
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
Portanto, para encontrar um arquivo que foi modificado há 7 ou mais dias, é necessário encontrar arquivos que foram modificados há mais de 6 dias -mtime +6
.
O próximo passo é executar esse comando uma vez por dia. Como cada securityuserN
um é um usuário diferente (convém repensar essa configuração, isso torna tudo mais complicado), isso deve ser executado como root. Então edite /etc/crontab
:
sudo nano /etc/crontab
E adicione esta linha:
@daily root find /home/securityuser* -mtime +6 -type f -delete
Isso executará o find
comando uma vez por dia e excluirá os arquivos.
/home
geralmente contém uma subpasta para cada usuário. Se você não deseja armazenar seus backups como usuários diferentes (não é uma boa ideia), considere outro local, por exemplo,/home/security/backup1
e assim por diante.