Это странный вопрос, но моя интуиция подсказывает мне, что есть простой способ сделать это:
У меня есть проект, который постоянно находится в разработке и написан на PHP, ему 14 лет. Несмотря на все попытки продолжать разработку, в нем хранится большое количество файлов. Бит PHP в порядке, я могу делать то, что мне нужно, через журнал базы данных в каждом заголовке.
Я говорю о материалах apache - css, gif, png, старых ссылках на jquery, старых файлах js, которые я могу или не могу когда-либо нанять. Таких файлов около 3000+.
Многие из них являются ссылками на старые изображения, которые больше не используются. Некоторые из них - это библиотеки jQuery, которые я давно перестал использовать. Дело в том, что все они выглядят так, как я помню, когда делал это раньше, и есть много устаревших подпрограмм распада, которым иногда нужны эти старые изображения / css / js / {insert here} для работы.
По сути, это не веб-сайт, а PHP-движок, который может выдавать множество вещей, и его трудно отслеживать, поэтому я просто оставляю эти старые ссылки.
Я хочу получить способ просмотреть журналы Apache для установок, которые были запущены более года, и точно установить, был ли каждый отдельный образ, CSS или что-то еще, НИКОГДА не упоминался и не загружался с момента создания сервера.
Есть ли способ элемент за элементом проверить, использовал ли его когда-либо Apache? У меня много серверов, на которых запускается этот код, было бы неплохо запустить его на каждом сервере, чтобы (в идеале) это был бы способ получения отдельных вызовов файлов (и счетчика?) Из журналов Apache. URL-адреса или пути unc подойдут.
Я хочу получить способ просмотреть журналы Apache для установок, которые были запущены более года, и точно установить, был ли каждый отдельный образ, CSS или что-то еще, НИКОГДА не упоминался и не загружался с момента создания сервера.
Я хочу бесконечное количество денег - ты не всегда можешь получить то, что хочешь.
Самое близкое, что вы можете сделать, это просканировать журнал доступа Apache, чтобы узнать, к каким файлам обращаются клиенты, но это не гарантия того, что файл никогда не будет использоваться.
require
Если вы хотите сделать это правильно, вам придется попросить ваших разработчиков провести надлежащий аудит кода. Это единственный способ узнать наверняка, что требуется, а что нет.
В качестве альтернативы вы можете просканировать доступные журналы, удалить все, на что нет ссылок, а затем добавить элементы обратно, когда обнаружите, что что-то сломано. Если у вас есть хороший контроль версий, это может быть приемлемым решением.
Если ваша файловая система не настроена на отбрасывание времени (например, ext3 / 4 с noatime
) вы можете просто использовать простой find
для поиска файлов, к которым не обращались какое-то время.
Например, чтобы найти файлы, к которым не обращались в течение года или более:
find /srv/www/ancientproject -atime +365 -print
Однако это может не решить вашу проблему по многим из тех же причин, по которым указывает voretaq7. Файл может быть запрошен, например, через 15 минут после его удаления.