Скрипт обработки логов squid

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Скрипт обработки логов squid

Непрочитанное сообщение InventoR » 2008-08-31 14:02:30

Извините пожалуйста, в программировании не силен, стараюсь, учусь, но пока слабоват еще очень. Проблема вот какая:
каждую ночь идет ротация логов сквида, логи падают в папку /usr/local/squid/log_backup/$date с названием к примеру 2008-08-01.ac.tar.gz
что надо?
надо первого числа нового месяца формировать автоматически статистику по всему squid за месяц, обработка происходит sargом
что делал раньше:
в ручную копировал все файлы из папки log_backup за текущий месяц в папку log_ac
потом делал

Код: Выделить всё

ls |grep 2008-08 >> 2008-08.txt.sh
chmod +x 2008-08.txt.sh
mcedit 2008-08.txt.sh
в файле были такие вот данные

Код: Выделить всё

2008-08-01.ac.log.gz
.......
в начало строки добавлял

Код: Выделить всё

 gunzip 2008-08-01.ac.log.gz && ......
потом

Код: Выделить всё

 ls |grep ".ac.log" > 2008-08.ac.sh
ну там дальше

Код: Выделить всё

cat 2008-08-01.ac.log && >> 2008-08.txt
....
потом

Код: Выделить всё

sarg -f /usr/local/etc/sarg/sarg-2008-08.conf  -l /usr/local/squid/log_ac/2008-08.txt
но это все жутко напрягает, помогите плиз с автоматизацией.

думаю надо:
получить список нужных для распаковки логов

Код: Выделить всё

ls /usr/local/squid/log_backup |grep 2008-08
результат загнать в масив
дальше из директорий которые в массиве скопировать файлы с доступом 2008-08-01.ac.log.gz в папку /usr/local/squid/log_ac
произвести gunzip этих файлов.
получить снова их список, загнать в масив, сделать перенаправление вывода каждого файла в один общий 2008-08.txt
и пропарсить его саргом, предварительно создавши sarg-2008-08.conf в принципе через редактор sed
ну а дальше

Код: Выделить всё

sarg -f $sarg.conf -l $access.log
помогите плиз все это произвести в автомате.
Последний раз редактировалось Alex Keda 2008-08-31 15:21:49, всего редактировалось 1 раз.
Причина: [code][/code] - для кого?
ну вот и сказочке конец, кто слушал, тот молодец.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Скрипт обработки логов squid

Непрочитанное сообщение zg » 2008-08-31 14:36:33

выложи

Код: Выделить всё

ls -1 /usr/local/squid/log_backup/
и

Код: Выделить всё

ls -1 /usr/local/squid/log_backup/$date

Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Re: Скрипт обработки логов squid

Непрочитанное сообщение InventoR » 2008-08-31 14:46:59

Код: Выделить всё

.......
drwxr-xr-x    2 root     wheel         512 Aug  6 23:55 2008-08-06
drwxr-xr-x    2 root     wheel         512 Aug  7 23:55 2008-08-07
drwxr-xr-x    2 root     wheel         512 Aug  8 23:56 2008-08-08
drwxr-xr-x    2 root     wheel         512 Aug  9 23:55 2008-08-09
drwxr-xr-x    2 root     wheel         512 Aug 10 23:55 2008-08-10
drwxr-xr-x    2 root     wheel         512 Aug 11 23:56 2008-08-11
drwxr-xr-x    2 root     wheel         512 Aug 12 23:55 2008-08-12
...........
drwxr-xr-x    2 root     wheel         512 Aug 26 23:55 2008-08-26
drwxr-xr-x    2 root     wheel         512 Aug 27 23:56 2008-08-27
drwxr-xr-x    2 root     wheel         512 Aug 28 23:55 2008-08-28
drwxr-xr-x    2 root     wheel         512 Aug 29 23:56 2008-08-29
drwxr-xr-x    2 root     wheel         512 Aug 30 23:55 2008-08-30

Код: Выделить всё

15:46 root@mx [etc]#ls -l /usr/local/squid/logbackup/2008-08-25
total 10068
-rw-r-----    1 squid    squid     3369351 Aug 25 23:55 2008-08-25.ac.log.gz
-rw-r-----    1 squid    squid        2753 Aug 25 23:55 2008-08-25.ca.log.gz
-rw-r-----    1 squid    squid     6895832 Aug 25 23:55 2008-08-25.st.log.gz
15:46 root@mx [etc]#
ну вот и сказочке конец, кто слушал, тот молодец.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Скрипт обработки логов squid

Непрочитанное сообщение zg » 2008-08-31 17:33:22

примерно так

Код: Выделить всё

#!/bin/sh

DATE=2008-08

SOME_DIR=.
SOME_LOG=./full_log.txt

find "${SOME_DIR}" -name "${DATE}*.ac.log.gz" -type f | xargs -I % zcat % > "${SOME_LOG}"

Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Re: Скрипт обработки логов squid

Непрочитанное сообщение InventoR » 2008-08-31 17:44:37

спасибо огромное работает. :drinks:
ну вот и сказочке конец, кто слушал, тот молодец.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Скрипт обработки логов squid

Непрочитанное сообщение zg » 2008-08-31 18:07:02

можно обойтись только find

Код: Выделить всё

find "${SOME_DIR}" -name "${DATE}*.ac.log.gz" -exec zcat {} \; > "${SOME_LOG}"
вобщем файнд рулит :smile:

4eJLoBek
проходил мимо

Re: Скрипт обработки логов squid

Непрочитанное сообщение 4eJLoBek » 2008-12-01 8:45:04

Люди!!! у меня та же проблема, каждый месяц сводить дневные отчёты сарга, расскажи пожалусто подробнее идею генерации месячного отчёта

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Скрипт обработки логов squid

Непрочитанное сообщение Alex Keda » 2008-12-01 8:50:19

Убей их всех! Бог потом рассортирует...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Скрипт обработки логов squid

Непрочитанное сообщение zg » 2008-12-01 8:59:59

4eJLoBek писал(а):Люди!!! у меня та же проблема, каждый месяц сводить дневные отчёты сарга, расскажи пожалусто подробнее идею генерации месячного отчёта
сводишь двеные логи за месяц в один большой лог, а потом подсовываешь его саргу. На выходе получается месячный отчёт.

4eJLoBek
проходил мимо

Re: Скрипт обработки логов squid

Непрочитанное сообщение 4eJLoBek » 2008-12-02 17:06:18

zg писал(а):
4eJLoBek писал(а):Люди!!! у меня та же проблема, каждый месяц сводить дневные отчёты сарга, расскажи пожалусто подробнее идею генерации месячного отчёта
сводишь двеные логи за месяц в один большой лог, а потом подсовываешь его саргу. На выходе получается месячный отчёт.
Просите, но я в этом деле новичок, попытаюсь задать вопрос поточнее:
почитал хелп к саргу, пытаюсь сенерировать отчёт вручну вот таким вот образом
sarg -d 01/11/2008-31/11/2008
а он мне выдаёт отчёт за 30.11 , аможет быть потомушто уже логи сквида затёрты? вообщем я не знаю, подскажите как быть!!! кто знает...
буду очень благодарен........))))

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Скрипт обработки логов squid

Непрочитанное сообщение zg » 2008-12-02 18:49:52

4eJLoBek писал(а):кто знает...
действительно, кто знает :???: всяко бывает :smile:
4eJLoBek писал(а):а может быть потомушто уже логи сквида затёрты?
ты мануал почитай, там всё наверняка расписано ;-)