Л/р 1 - Утилиты командной строки

По мотивам проекта Wide Finder 2

Имеется текстовый файл log.txt, сожержащий записи access log сервера Apache.

Формат записи:
<DNS клиента> - - [<Штамп времени с временной зоной>] <Строка HTTP-запроса (тип, URL, версия)> <Код HTTP-ответа> <Количество переданных байт или '-', если ответ не имеет тела> <Строка реферера ('-' означает прямой запрос без реферера)> <Название клиента>
Пример записи:
host-24-225-218-245.patmedia.net - - [01/Oct/2006:06:33:45 -0700] "GET /example/example.atom HTTP/1.1" 304 - "-" "NetNewsWire/2.0b37 (Mac OS X; Lite; http://ranchero.com/netnewswire/)"

Написать Shell-скрипт, который по этому файлу расчитает и выдаст в консоль такие величины:

  1. Tоп 10 URL по количеству обращений
  2. Топ 10 клиентов по количеству обращений к 10 URL из предыдущего задания и количество обращений каждого клиента
  3. Всех рефереров для самой популярной URL с количеством обращений для каждого реферера
  4. Топ 10 URL, которые вернули коды 3хх или 4хх (т.е. 301, 302, 404 и т.п.) c количеством обращений по каждому коду
  5. Топ 10 URL по скаченным байтам с объемом байт для каждой URL
  6. Общее количество обращений в каждый из дней недели

Оценка за каждый пункт — 2 балла.

Подсказка: команды Shell, которые могут пригодиться: grep, cut, sort и uniq, awk

Литература:

Сроки сдачи: 5.10.2011

log.txt (1.9 MB) vseloved, 2011-09-06 02:53

Also available in: HTML TXT