Скрипт автоматического удаления устаревших файлов
В одной компании стояла задача сделать файловый архив-помойку для хранения и пересылки документации в сторонние организации. Я накидал на #PHP самописный интерфейс для загрузки файлов, а на #bash’е сделал скрипт автоматического удаления устаревших файлов. Небольшая заметка об этом скрипте.
Скрипт для удаления устаревших файлов очень прост, написан на #bash’е и основывается на утилите find
. Утилита find
имеет опцию -mtime
, при помощи которого можно сделать выборку файлов по времени изменения:
Здесь мы говорим утилите find
, что необходимо найти и показать файлы, у которых с даты последнего изменения прошло более 3 дней. Если необходимо вывести файлы, дата изменения которых будет менее 3
дней, то ставим отрицательное значение -3
.
Далее, конструируем конвейер, и при помощи xargs
указываем команду удаления rm -f
:
Сам скрипт провожу ниже.
Скрипт
|
|
В скрипте я вынес некоторые значения в переменные для удобной перенастройки. Вызывается скрипт следующем образом:
Где:
3
- количество дней, прошедших с момента последнего изменения файла./path/to/storage
- путь к файловому хранилищу, в котором необходимо удалять устаревшие файлы.
Автоматический запуск по расписанию
Осталось добавить выполнение скрипта по cron’у. Я указал время 23:59
, когда нагрузка на файловое хранилище минимальна: