![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
al0ns0 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 26.7.2007 Репутация: нет Всего: нет |
Мне нужна отпарсить squid access.log, за месяц он разрастается на 100mb.
скрипт стартует кронам каждый день,каждый час. Мне нужна что бы при новом старте, парсинг начинался с последнего. Это легко делает если в массив записать содержимое файла, но 100mb писать в массив это не годиться=) Что делать? |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
al0ns0, а если резать файл на части?
|
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Логичнее воспользоваться logrotate (если рутовые права доступны, конечно)
|
|||
|
||||
Nab |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
Правильней настроить logrotate у самого сквида. Потом можно воспользоваться уже готовыми решениями, sarg или lightsquid. Последний написан нашим парнем, и тоже на перле
![]() -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
Ramirez |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 18.1.2005 Где: Moscow, ExUSSR Репутация: 4 Всего: 5 |
логичнее конечно резать файл по дням.
но если всетаки хочется парсить один большой, то я бы наверное делал так: 1. отпарсили. запомнили номер последней ст роки и дату создания файла. 2. при след запуске проверили дату создания файла а. если дата создания файла другая - значит начинать парсить с начала б. если дата не изменилась, то парсим начиня с запомненной строчки чтобы "прокручивать" файл к нужному месту, можно посмотреть в сторону http://search.cpan.org/~gbarr/IO-1.2301/IO/Seekable.pm а можно просто тупо в цикле читать и пропускать строчки, если скорость не критична. Это сообщение отредактировал(а) Ramirez - 31.8.2007, 14:26 |
|||
|
||||
Sadok |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.11.2004 Репутация: 1 Всего: 2 |
Ramirez,
Надо не номер строки запоминать, а смещение в байтах. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |