Em vez de um find -mtime, faça um ls -t, por exemplo:
DIR=/tmp
FREESPACE=1000000
find $DIR -type f | xargs ls -1rt | while read f ; do
if [ 'df --output=avail $DIR | tail -1' -ge $FREESPACE ] ; then
break
fi
# rm -f $f
done
Descomente o rm -f $f
para que ele funcione ...
No entanto, eu costumava fazer as coisas de forma um pouco diferente. Eu colocaria meus logs cron em / var / log e deixaria algo como logrotate manipular o espaço em disco. Ou, como outra alternativa, colocaria os logs em um subdiretório separado, como / tmp / mycronjob / *, e manteria um número fixo de dias de arquivos de log. Não é tão flexível quanto monitorar o espaço em disco, mas também é um passo a passo em diante find /tmp/mycronjob -mtime +30 -exec rm {} \;
e mais previsível.