Скрипт удаления старых файлов

Недавно делал что-то типа частного файлообменника, и чтобы не контролировать что пользователи закачивают, добавил скрипт в cron чтобы файлы которым больше 3 дней удалялись автоматически.

Пример команды для удаления файлов которым больше N дней:

find /var/www/share/ -type f -mtime +N -exec rm {} \;

Если нужно удалять директории и все что в них есть, тогда этой командой:

find /var/www/share/ -type d -mtime +N -exec rm -rfv {} \;

Можно также писать логи (и не забыть настроить logrotate):

find /var/www/share/ -type d -mtime +N -exec rm -rfv {} \; >> /dir/log.txt

Вместо удаления можно проверить какие данные будут удалены командой:

find /var/www/share/ -type d -mtime +N -print

Пишем команду в файл и ложим в желаемую директорию, например /home/user/share.sh
Добавляем ссылку на этот файл в /etc/crontab. Планировщик будет выполнять его каждый день в 4 утра от имени пользователя «www-data» и тем самым будут удаляться файлы которые хранятся больше N дней:

0 4 * * * www-data /home/user/share.sh > /dev/null 2>&1

Смотрите также мои статьи:
Как изменить дату файла в Linux
Скрипт проверки свободного места на HDD

Оставьте комментарий

Добавить комментарий