The OpenNET Project / Index page

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



"Тематический каталог: Подсчет трафика проходящего через Squid используя MySQL (squid traffic mysql isp nilling linux)"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Подсчет трафика проходящего через 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ообщить модератору

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



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

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