Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Shell скрипт и лог apache  (Прочитано 1088 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AntXXX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Shell скрипт и лог apache
« : 09 Сентября 2014, 15:15:37 »
Всем привет!
Итак есть лог apache. Нужно написать shell скрипт, который будет выдавать топ-10 уникальных URL по количеству уникальных хостов за некую дату. Почитав немного решил юзать grep. То что найдет grep записать во временный файл и дальше с этим всем работать. Но чувствую, что это всё сплошной иррационал! :idiot2:

Вопросы:
1. Можно ли так делать?
2. Если нельзя то как делать по другому?
3. Какой средний размер лога у apache? (в интернете нашел инфу 8-46гиг)

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Re: Shell скрипт и лог apache
« Ответ #1 : 09 Сентября 2014, 15:47:44 »
1,2) Слишком избыточно, можно писать в переменную или вообще сразу использовать пайп.

например:
cat /var/log/apache/access.log | grep "09/Sep/2014" | awk '{a[$7]+=$10}END{for(x in a)print x, a[x]}' | sort -r -n -k2 | head -n1

3) Очевидно что тут все зависит от посещаемости т.к. 1 запрос = 1 запись в логе
Ну и еще можно посмотреть/поменять периодичность архивации/очистки логов:

cat /etc/logrotate.d/apache2
« Последнее редактирование: 09 Сентября 2014, 15:49:36 от .ubuntufan »

Оффлайн AntXXX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Shell скрипт и лог apache
« Ответ #2 : 09 Сентября 2014, 17:19:50 »
Я так понимаю $10 это десятое поле, но если я хочу его просто вывести то ничего не выводит.
Что находится в этом поле?

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Re: Shell скрипт и лог apache
« Ответ #3 : 09 Сентября 2014, 17:30:36 »
Это просто пример - просмотр топ 10 страниц по исходящему трафику.
Десятое поле в стандартном конфиге - размер ответа клиенту в байтах, седьмое - адрес страницы.

awk '{print $7 $10}' /var/log/apache/access.log

Оффлайн AntXXX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Shell скрипт и лог apache
« Ответ #4 : 09 Сентября 2014, 17:40:27 »
Спасибо! Разобрался.

 

Страница сгенерирована за 0.014 секунд. Запросов: 21.