Я взял на себя техническую работу в небольшой компании. Однако предыдущий руководитель принял ошибочное решение хранить сотни ГБ изображений, хотя наш веб-сайт использует только около 5 ГБ из этих изображений. По сути, нет никаких скриптов очистки. Теперь мне поручено оптимизировать этот беспорядок, и я не совсем уверен, с чего начать. Есть ли способ получить список последнего времени доступа к каждому файлу изображения через веб, чтобы я мог сделать что-то вроде «ЕСЛИ НЕ ОТКРЫВАЛИСЬ ЗА ПОСЛЕДНИЕ 365 ДНЕЙ, ТО ПЕРЕМЕСТИТЬ НА РЕЗЕРВНЫЙ ДИСК И УДАЛИТЬ С ОСНОВНОГО СЕРВЕРА»?
решение1
Вы забыли указать, в какой среде вы находитесь (ОС, веб-сервер и т. д.), поэтому я предполагаю, что это Linux.
Если вы не смонтировали каталог данных на сервере с помощью noatime
, вы можете использовать find
для поиска файлов, к которым не было доступа в течение 365 дней:
find /var/www/images -iname "*.jpg" -atime +365 -type f
Если вы использовали noatime
, это будет невозможно (а если вы использовали relatime
, то atime
может быть отключено на 24 часа).
Однако это не лучший подход, поскольку в ваших HTML-файлах могут оказаться неработающие ссылки, а этот ресурс кому-то понадобится через 5 дней...
Лучший подход: проанализируйте свое веб-дерево, перечислите все файлы, на которые там есть ссылки (убедитесь, что вы отключили автоиндексацию веб-серверов...) и заархивируйте все остальное. Таким образом, вы можете быть уверены, что все, что указано в ваших HTML-файлах, по-прежнему будет доступно.
Будьте осторожны, есть вероятность, что у вас будут изолированные острова файлов HMTL, не связанные с вашим обычным деревом, к которым люди получают доступ по прямой ссылке — подумайте о них, когда будете составлять свой список. Конечно, то же самое может быть верно и для файлов изображений, но вы действительно можете отловить их только с помощью анализа файла журнала или метода find
.
решение2
В зависимости от того, насколько давно хранятся ваши веб-журналы, вы можете проанализировать все записи о файлах из нужного каталога, а затем удалить все, что не найдено.