Л/р 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-скрипт, который по этому файлу расчитает и выдаст в консоль такие величины:
- Tоп 10 URL по количеству обращений
- Топ 10 клиентов по количеству обращений к 10 URL из предыдущего задания и количество обращений каждого клиента
- Всех рефереров для самой популярной URL с количеством обращений для каждого реферера
- Топ 10 URL, которые вернули коды 3хх или 4хх (т.е. 301, 302, 404 и т.п.) c количеством обращений по каждому коду
- Топ 10 URL по скаченным байтам с объемом байт для каждой URL
- Общее количество обращений в каждый из дней недели
Оценка за каждый пункт — 2 балла.
Подсказка: команды Shell, которые могут пригодиться: grep, cut, sort и uniq, awk
Литература:
- http://www.linux.org.ru/books/bash-conspect.html
- http://www.catonmat.net/blog/wp-content/uploads/2008/09/awk1line.txt
- http://radar.oreilly.com/2011/04/data-hand-tools.html
- http://www.tldp.org/LDP/abs/html/
- http://matt.might.net/articles/basic-unix/
Сроки сдачи: 5.10.2011