URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6961
[ Назад ]

Исходное сообщение
"Грепнуть лог апача (русское имя файла на сайте)"

Отправлено 027 , 24-Авг-10 18:04 
Встала такая задача.
Имеется веб-сервер в вузе (Apache 2.0 Win32). Логгирование настроено ректально. Лог http access весит аж 7 гигабайт.
Нужно откопать в нем запросы на скачивание определенного файла, именованного русскими символами. Дело серьезное, родители неудачливого абитуриента катят бочку на вуз, якобы не был вовремя опубликован этот документ (а это обязательно по закону).
Файл поименован по-русски. Апач такие файлы спокойно отдает, но в логе запросов имя файла кодировано. Типа: я─я┐я│я│п╨п╬п╣ п╦п╪я▐ я└п╟п╧п╩п╟.pdf

Вопрос.
Кто кодирует имя, которое появляется в логе апача? Только браузер, или апач перекодирует по-своему? Есть опасение, что браузеры могут кодировать по-разному. Варианты:
- кодировать все,
- кодировать все, кроме ascii (я в логе такое видел),
- сначала перегнать в utf-8 (у оперы есть такая опция в настройках), а потом кодировать полученные байты,
- и в этом случае два варианта - кодировать askii или нет.

Задачу можно еще так сформулировать. Нужно надежно найти в логе первое обращение к серверу на скачивание этого файла. Файл обновлялся, и время его публикации на сервере гораздо позднее положенного срока.


Содержание

Сообщения в этом обсуждении
"Грепнуть лог апача (русское имя файла на сайте)"
Отправлено 027 , 24-Авг-10 18:08 
Движок форума испохабил пример имени файла. В предпросмотре этого не было видно. Имелось в виду кодирование по принципу - символ передается кодом:
[символ процента][шестнадцатиричное представление байта]


"Грепнуть лог апача (русское имя файла на сайте)"
Отправлено Pahanivo , 24-Авг-10 19:28 
>Движок форума испохабил пример имени файла. В предпросмотре этого не было видно.
>Имелось в виду кодирование по принципу - символ передается кодом:
>[символ процента][шестнадцатиричное представление байта]

а что если
tail -f http.log | grep you.ip.add.res > some.log
в браузере запрашиваем данный фаил
в some.log смотрим нужную строку для поика - и не надо ниче кодить ....


"Грепнуть лог апача (русское имя файла на сайте)"
Отправлено 027 , 24-Авг-10 21:13 
>а что если
> ... grep you.ip.add.res > some.log

Я об этом думал. Айпи публикатора будет точно, скрипт публикации после отправки по POST выдает в "админке" список реально залитых файлов. Но с этого компа тыкают в сайт который год. Лог буквально усыпан этим айпишником.


"Грепнуть лог апача (русское имя файла на сайте)"
Отправлено Pahanivo , 25-Авг-10 07:35 
>>а что если
>> ... grep you.ip.add.res > some.log
>
>Я об этом думал. Айпи публикатора будет точно, скрипт публикации после отправки
>по POST выдает в "админке" список реально залитых файлов. Но с
>этого компа тыкают в сайт который год. Лог буквально усыпан этим
>айпишником.

стоп стоп стоп
тебе лог публикации надо шоле?
а не проще просто дату файла глянуть? ))
я то думал тебе лог запросов ...


"Грепнуть лог апача (русское имя файла на сайте)"
Отправлено Nimdar , 25-Авг-10 12:23 
>[оверквотинг удален]
>>
>>Я об этом думал. Айпи публикатора будет точно, скрипт публикации после отправки
>>по POST выдает в "админке" список реально залитых файлов. Но с
>>этого компа тыкают в сайт который год. Лог буквально усыпан этим
>>айпишником.
>
>стоп стоп стоп
>тебе лог публикации надо шоле?
>а не проще просто дату файла глянуть? ))
>я то думал тебе лог запросов ...

Дата публикации и дата файла несколько разные вещи, не? :) Файл могли залить
на сервак, но не опубликовывать на сайте.
Тем более и автор об этом утверждает в заглавном посте.


"Грепнуть лог апача (русское имя файла на сайте)"
Отправлено Pahanivo , 25-Авг-10 13:52 
>Дата публикации и дата файла несколько разные вещи, не? :) Файл могли

да разные - автор не указал что имеено ему нужно
по дате файла мохно судить о его физическом появлении на серваке - но это бред ибо легко подделать
опять же по запросам тоже достоверно судить нельзя - по темже причинам что вами указаны (публикация это фактически создание урла - что совершенно другая весчь)
имхо самое достоверное это предъявить логи на СКАЧИВАНИЕ.
по крайней мере можно точно сказать что с даты первого скачивания файл был доступен - собстна об этом я говорил
>залить
>на сервак, но не опубликовывать на сайте.
>Тем более и автор об этом утверждает в заглавном посте.

автор ничего не утверждает


"Грепнуть лог апача (русское имя файла на сайте)"
Отправлено Nimdar , 25-Авг-10 12:22 
>[оверквотинг удален]
>- кодировать все,
>- кодировать все, кроме ascii (я в логе такое видел),
>- сначала перегнать в utf-8 (у оперы есть такая опция в настройках),
>а потом кодировать полученные байты,
>- и в этом случае два варианта - кодировать askii или нет.
>
>
>Задачу можно еще так сформулировать. Нужно надежно найти в логе первое обращение
>к серверу на скачивание этого файла. Файл обновлялся, и время его
>публикации на сервере гораздо позднее положенного срока.

Например, grep путь_к_файлу
Если все документы лежат в одном каталоге, то, ясное дело, так не получиццо.
Тогда вариант 2.
grep размер_файла_в_байтах access.log


"Грепнуть лог апача (русское имя файла на сайте)"
Отправлено 027 , 25-Авг-10 12:44 
Ни размер, ни дата файла в моем случае не помогут. Документ дополнялся и перезаливался несколько раз.

Решил задачу таким образом.
grep "path/to/docs" access.log > docs_access.log
В полученном файле заменил все "GET " на "<a href=" , а также все ".pdf" на ".pdf>11111</a>".
И стал смотреть эти ссылки огнелисом. Он в статусной строке показывает адрес по-русски.