Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   помогите "прочитать" лог апача (https://forum.antichat.xyz/showthread.php?t=67870)

dekloper 20.04.2008 21:38

помогите "прочитать" лог апача
 
помогите "прочитать" лог апача httpd-access.log

xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:26 +0700] "GET /козявки/2.jpg HTTP/1.1" 200 78226
xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:26 +0700] "GET /букашки/2.jpg HTTP/1.1" 200 78226
xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:26 +0700] "GET /козявки/2.jpg HTTP/1.1" 200 78226
xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:48 +0700] "GET /букашки/main.html HTTP/1.1" 401 401
xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:26 +0700] "GET /козявки/2.jpg HTTP/1.1" 200 78226
xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:26 +0700] "GET /букашки/2.jpg HTTP/1.1" 200 78226
xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:58 +0700] "GET /клопы/2.jpg HTTP/1.1" 206 61842
xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:26 +0700] "GET /козявки/2.jpg HTTP/1.1" 200 78226
xxx.xxx.xxx.xxx - user [09/Apr/2008:14:15:00 +0700] "GET /клопы/3.jpg HTTP/1.1" 206 66184
xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:26 +0700] "GET /клопы/2.jpg HTTP/1.1" 200 78226
xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:26 +0700] "GET /букашки/2.jpg HTTP/1.1" 200 78226
xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:26 +0700] "GET /клопы/2.jpg HTTP/1.1" 200 78226

надо выдернуть оттуда цифру объема полученного контента с проверкой кода 200 (кстати, че за код такой 206?) просуммировав ее для каждого конкретного места (козявки, букашки, клопы ;) ), и отдать ее через в веб-морду в удобоваримой форме узеру.
Как это реализовать? Думаю накарябать примитивный шел-скрипт (используя sed, awk) с последущей обработкой и выводом (php, perl иль ешшо как).
Проблема в следущем - все это должно быть готово уже ...два месяца назад :(


А мож есть готовые решения, че я квадратные колеса изобретаю?

Ymrs 20.04.2008 23:13

посмотри на _http://awstats.sourceforge.net/
HTTP/1.0 206 Partial Content" это для докачки.

dekloper 20.04.2008 23:49

Цитата:

Сообщение от Ymrs
посмотри на _http://awstats.sourceforge.net/

уууу.... эт как то все круто... много лишнего...
задачка-то примитивна как огурец, разобрать строку, сложить все цифры и отдать узеру...

slesh 21.04.2008 15:55

вообщето для такой цели на серваках ставят Webalizer - который как раз и ведет подобную статистику :)

dekloper 22.04.2008 00:04

Цитата:

Сообщение от slesh
вообщето для такой цели на серваках ставят Webalizer - который как раз и ведет подобную статистику :)

спс, направление мысли понятно... хорошо, когда есть готовый качественный опенсофт ;)

но мне прежде всего интересен сам процесс отработки скриптов, передача параметров и т.п. на данном примере... решение к-рого м.б. полезным в других "нестандартных" ситуациях ;)

KindEcstasy 22.04.2008 03:20

Смотри, у тебя разделяет слова пробел - " "! С помощью explode - разделяем слова и пихаем в массив. Что-то типа:


PHP код:

<?
$str 
"xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:26 +0700] 'GET /козявки/2.jpg HTTP/1.1' 200 78226";
list(
$dat1,$dat2,$dat3,$dat4,$dat5,$dat6,$dat7,$dat8,$dat9,$dat10) = explode(" "$str);
$dat5 str_replace("+","",$dat5); #вырезаем +
$dat5 str_replace("]","",$dat5); #вырезаем ]

# теперь как ты говоришь тебе всё нужно сложить #(цифры). Цифр у нас 3! в массиве это dat5,9,10! Вот #их и складываем.

echo ($dat5+$dat9+$dat10);
?>

Вот и всё. Выводит результат всех цифровых значений.

dekloper 23.04.2008 13:39

Цитата:

Сообщение от KindEcstasy
Смотри, у тебя разделяет слова пробел - " "! С помощью explode - разделяем слова и пихаем в массив. Что-то типа:


PHP код:

<?
$str 
"xxx.xxx.xxx.xxx - user [09/Apr/2008:14:14:26 +0700] 'GET /козявки/2.jpg HTTP/1.1' 200 78226";
list(
$dat1,$dat2,$dat3,$dat4,$dat5,$dat6,$dat7,$dat8,$dat9,$dat10) = explode(" "$str);
$dat5 str_replace("+","",$dat5); #вырезаем +
$dat5 str_replace("]","",$dat5); #вырезаем ]

# теперь как ты говоришь тебе всё нужно сложить #(цифры). Цифр у нас 3! в массиве это dat5,9,10! Вот #их и складываем.

echo ($dat5+$dat9+$dat10);
?>

Вот и всё. Выводит результат всех цифровых значений.

а чем, собсно, определяется длина массива? про "козявки-букашки", сам понимаш, эт малый фрагмент логов апача...


Время: 09:26