Мини-руководство. Удаляем старье из файлопомойки по граничной дате.

Аватара пользователя

Автор темы
slant
Сообщения: 4854
Зарегистрирован: 21 июн 2017, 18:09
Решено: 111
Благодарил (а): 53 раза
Поблагодарили: 2174 раза
Контактная информация:

Мини-руководство. Удаляем старье из файлопомойки по граничной дате.

#1

14 июл 2024, 21:06

Задача стоящая перед любым владельцем тотемных Хомяка и Жабы: как избавиться от дохрена "нужных" файлов из каталога с загрузками, не учиняя психологического насилия над собой? :) Там же все, буквально все НАДО! А вдруг еще пригодится? :)

Чисто психологически - проще всего повесить эту задачу на автоматику. Чтобы, скажем, там убивалось все, что старше месяца (за это время реально нужное прекрасно можно отсортировать руками. Даже если лень или некогда это сделать сразу. А до чего руки за месяц не дошли - это 99.9% мусор, который никогда не понадобится).

Остался технический вопрос: как это все чистить по таким условиям, технически? Ответ:

1. Пишем скрипт:

Код: Выделить всё

touch /path/to/downloads/folder
find -L /path/to/downloads/folder -type f,d -mtime +30 -delete
2. Делаем его исполняемым. (На этом этапе можно проверить эффект запуском вручную.)
3. Закидываем скрипт в /etc/cron.hourly

Готово.

Зачем нужен touch в первой строчке скрипта? Это чтобы find НИКОГДА не попытался удалить саму /path/to/downloads/folder - мы обновляем ее время изменения перед выполнением find, и так она всегда будет "слишком свежей" для удаления.
Во второй строчке find будет искать все что старше 30 дней, и является файлом или каталогом. И прибивать найденное.
Зачем используем cron.hourly а не daily? Потому, что последний выполняется раз в день, что вроде бы нам и надо... да только этот раз - в час ночи (в большинстве дистрибутивов). А если время прошло - выполнено не будет. Так что путь лучше каждый час отрабатывает, после первого запуска (и убивания копившегося годами) это будет быстро, т.к. find очень эффективен.

P.S. Особо феерически работает на btrfs - там оно ищет и удаляет практически любое количество файлов почти мгновенно. (За счет отложенной очистки btrfs - она тела удаленных файлов потом сама фоном чистит, не грузя систему.)

Ответить

Вернуться в «Руководства»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя