freedev.asia Свободное програмное обеспечение, для свободных людей!

17Июн/110

Поиск не используемых статических файлов на сайте

Столкнулся с проблемой, необходимо найти 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 и создает список файлов, к которым были обращения. Затем создает список существующих файлов, и находит различая в этих списках. Результатом работы скрипта, является список файлов которые не использовались.

Пример запуска:

<br />
./fnuf.sh /var/log/apache2/access.log /AR_2_3_3/img /var/www/AR_2_3_3/app/webroot/img/

Данный скрипт нуждается в улучшении, и если он будет пользоваться спросом и у меня будет время, то я его возможно доработаю.

Недостатки:

  • Если файл запрашивался с параметрами GET, то ему не найдется совпадения с реальным файлом.
  • Нет нормальной справки.
Комментарии (0) Пинги (0)

Пока нет комментариев.


Leave a comment

Нет обратных ссылок на эту запись.