Я написал скрипт, который будет делать это ниже - пожалуйста, проверьте, довольны ли вы им, особенно командой rm -r, так как я не выполнил ее. (Эта команда должна удалить все в данной папке, включая подпапки.
#! /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
Создайте файл с помощью приведенного выше сценария, затем сделайте его исполняемым (имя файла chmod 755) и добавьте его в crontab с помощью строки вроде
02 02 * * * ownername /path/to/file
(Это будет выполняться каждое утро в 02:02 и предполагает, что вы добавили его в /etc /crontab. Если вы добавили его в crontab пользователей, пропустите бит "имя владельца".
Тем не менее, мне интересно, если это хороший способ делать вещи. Совершенно другой подход может состоять в том, чтобы просто регулярно удалять все файлы старше указанного возраста - вы можете сделать это с помощью 1 строки из crontab, как
02 04 * * * username find /data/spam -ctime +15 -exec rm {} +
Который будет искать все файлы старше 14 дней в /data /spam и удалять их.