The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Тематический каталог: Подсчет трафика проходящего через Squid используя MySQL (squid traffic mysql isp nilling linux), auto_topic (?), 20-Янв-04, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


1. "Подсчет трафика проходящего через Squid используя MySQL (squid traffic mysql isp nilling linux)"  +/
Сообщение от karlemail (?), 20-Янв-04, 04:04 
Идея чудесная -- только лог лучше парсить по мере поступления. Доходим до EOF, ждём несколько секуд, сбрасываем состояние ошибки и читаем снова.
Можно проверить иноду файла (вдруг он ротировался). Вот исходник:

int log_getc(void)
{
    int c, counter=0;
    
    for(;;) {
        c = fgetc(log);
        if(c == EOF) {
            if(counter > 60) {
                struct stat b;
                if(stat(log_file,&b) != 0) {
                    char errmsg[1024];
                    sprintf(errmsg, "stat %s: %s", log_file, strerror(errno));
                    fatal_error(errmsg);
                }
                else {
                    if(log_inode != b.st_ino)
                        fatal_error("Log rotated");
                }
                counter = 0;
            }
            else {
                sleep(30);
                counter++;
                clearerr(log);
            }
        }
        else return c;
    }
}

Полный текст утилитки (только для postgres'а) дарю попросившему почтой ;)

Ответить | Правка | Наверх | Cообщить модератору

7. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  +/
Сообщение от Осипов Станислав (?), 20-Янв-04, 18:43 
>Идея чудесная -- только лог лучше парсить по мере поступления. Доходим до
>EOF, ждём несколько секуд, сбрасываем состояние ошибки и читаем снова.
>Можно проверить иноду файла (вдруг он ротировался). Вот исходник:

прощу прощения, я не программирую на C/C++. ваша утилитка для моего случая - рабочая? и как ей пользоваться?

Ответить | Правка | Наверх | Cообщить модератору

9. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  +/
Сообщение от yarmolemail (?), 21-Янв-04, 00:29 
А я для этих целей крутить на С не стал, и сделал
tail -n 1 -f /var/log/squid/access.log | gawk ........
а в gawk добавляю данные в mysql по мере поступления.

PS Кстати, кроме поля с url, я добавляю поле с именем сервера (выдергиваю из url). Сделал только недавно, еще не оценил насколько оно надо, но кажется что группировка по имени сервера дает красивые (наглядные) резуьтатаы.

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру