Eu escrevi um script que fará isso abaixo - por favor, verifique se você está feliz com isso, particularmente com o comando rm -r, já que não o executei. (Esse comando deve excluir tudo na pasta especificada, incluindo subpastas.
#! /bin/bash
FOLDER=/folder/to/delete
MAXSIZEINGIGS=10
#### No User Serviceable Parts below this line ###
MAXSIZE=$(( $MAXSIZEINGIGS * 1024 * 1024 ))
FOLDERSIZE='du -ks $FOLDER | cut -f1'
if [ $FOLDERSIZE -gt $MAXSIZE ]
then
rm -r $FOLDER/*
fi
Crie um arquivo com o script acima, então torne-o executável (chmod 755 filename) e adicione-o ao crontab com uma linha como
02 02 * * * ownername /path/to/file
(Isto irá rodar todas as manhãs às 02:02, e assume que você o adicionou em / etc / crontab. Se você o adicionou a um crontab de usuários, deixe de fora o bit "ownername".
Dito isso, eu me pergunto se isso é uma boa maneira de fazer as coisas. Uma abordagem totalmente diferente pode ser simplesmente remover todos os arquivos com mais de uma idade em uma base regular - você pode fazer isso com um liner de crontab como
02 04 * * * username find /data/spam -ctime +15 -exec rm {} +
Que procurará todos os arquivos com mais de 14 dias em / data / spam e os excluirá.