Столкнулся с проблемой, необходимо найти css, js и файлы изображений, которые давно не используются. В ходе развития проекта, менялись всевозможные компоненты на JS и соответственно от них остался различный мусор в виде CSS и изображений. Поискав в интернете что ни будь подходящее для себя, я так ничего и не нашел и решил написать небольшой скриптик.
#!/bin/bash if [ $# -ne 3 ] then echo 'Необходимо передавать 3 параметра' echo 'лог_Apache виртуальная_директория директория_с_файлами' exit fi apache_log=$1 web_dir=$2 local_dir=$3 cur_dir=`pwd` cat $apache_log | awk '{print $7; }' | grep $web_dir | awk '{gsub("$web_dir", ".", $0); print $0}' | sort | uniq > /tmp/$$rez cd $local_dir find ./ -type f | grep -vE .svn | sort | uniq > /tmp/$$rez_find cd $cur_dir diff --line-format="%L" /tmp/$$rez /tmp/$$rez_find rm /tmp/$$rez /tmp/$$rez_find
Суть его заключается в том, что он в начале просматривает файл журнала Apache и создает список файлов, к которым были обращения. Затем создает список существующих файлов, и находит различая в этих списках. Результатом работы скрипта, является список файлов которые не использовались.
Пример запуска:
./fnuf.sh /var/log/apache2/access.log /AR_2_3_3/img /var/www/AR_2_3_3/app/webroot/img/
Данный скрипт нуждается в улучшении, и если он будет пользоваться спросом и у меня будет время, то я его возможно доработаю.
Недостатки:
Автор: Сергей Степанов
Поделиться @
Лучше искать все файлы на диске, смотреть на что ссылаются статические файлы и уже по разнице решать используется файл или нет. По БД универсальное решение - добавить дамп в список проверяемых статических файлов (в дампе искать ссылки).
Недостаток и у этого решения найдется. Например, если использовать ссылки не от корня сайта, сопоставить простым скриптом будет трудно.