Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Ротация логов или что то типа того - как разбивать лог файл

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [*nix/Linux] >> Ротация логов или что то типа того - как разбивать лог файл
Имя
Сообщение << Старые топики   Новые топики >>
Ротация логов или что то типа того - как разбивать лог файл - 2012-04-05 09:48:57.790000   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Явление это вроде называется - ротация логов. Как реализовать - не знаю.
Ситуация очень простая: ведётся один лог файл нкой прогой. Нужно информацию из этого лога периодически заливать в БД MySQL средствами PHP-скрипта. Если PHP-скрипт каждые, скажем, 10 секунд будет перечитывать весь этот лог-файл - будет затрачено очень большое количество ресурсов.
Нужно что бы этот лог, каким то неизвестным мне способом, периодически(хотелось бы 1 раз в 10 сек) разбивался на маленькие файлики, с которыми потом уже будет работать php-скрипт.
Как зделать такое разбиение?
Post #: 1
RE: Ротация логов или что то типа того - как разбивать лог файл - 2012-04-05 10:59:36.390000   
The Joker

Сообщений: 3485
Оценки: 99
Присоединился: 2008-10-07 16:22:13.730000
Навскидку: задание chron-у через определённые промежутки времени менять имя лога (например, с name.log на name_date_time.log) и создавать пустой name.log.
Post #: 2
RE: Ротация логов или что то типа того - как разбивать лог файл - 2012-04-05 14:24:41.983333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Вообще идея заманчивая, но есть одно подозрение.
На сколько я помню - при переименовании вручную командой mv происходило следующее - лог всё так же продолжал записываться в тот же файл, который уже назывался п другому. А вновь созданый net.log - такое его оригенальное имя - оставался быть пустым…
Post #: 3
RE: Ротация логов или что то типа того - как разбивать лог файл - 2012-04-05 17:26:38.186666   
surgutor

Сообщений: 627
Оценки: 0
Присоединился: 2008-05-29 11:42:15.623333
Раз в 10 секунд?
Товарищ, это что у вас такое так капительно логируется? У меня даже абонентский трафик не так быстро ротируется, а каждын две минуты.
По поводу вашего.
Просто CRON-ом копируете текущий лог в log_name_date.log, а там уже ваше дело, как вы его будете парсить и впихивать в мускль.
Я бы использовал бы Shell, проще и надежнее. А для парсинга использовал различные sed и awk.
Post #: 4
RE: Ротация логов или что то типа того - как разбивать лог файл - 2012-04-05 20:06:44.166666   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Лог игрового сервера. Сыпится туда очень много всякого мусора, среди которого некоторое количество очень полезной информации. Там же вся история игрового чата. Чат буду выводить на веб-страничку и соответственно обновление информации по возможности быстрое.

При копировании CRON-ом каждый новый файл типа log_name_date.log по размеру будет равен текущему оригинальному net.log, который за день до 50 мегабайт выростает. Если я каждые 10 сек буду парсить 50мб файл - боюсь всё рухнет. Задача как раз и заключается не в копировании и парсинге всего лога, а в разбиении, или вырезании всего содержимого при каждом чтении, что бы он не рос. Что бы каждый раз парсеру на обработку поступала только свежая информация, а не вся, накопившаяся со времени рестарта сервера.
Post #: 5
RE: Ротация логов или что то типа того - как разбивать лог файл - 2012-04-06 15:32:03.783333   
surgutor

Сообщений: 627
Оценки: 0
Присоединился: 2008-05-29 11:42:15.623333

quote:

ORIGINAL: mr_Anderson

Лог игрового сервера. Сыпится туда очень много всякого мусора, среди которого некоторое количество очень полезной информации. Там же вся история игрового чата. Чат буду выводить на веб-страничку и соответственно обновление информации по возможности быстрое.

При копировании CRON-ом каждый новый файл типа log_name_date.log по размеру будет равен текущему оригинальному net.log, который за день до 50 мегабайт выростает. Если я каждые 10 сек буду парсить 50мб файл - боюсь всё рухнет. Задача как раз и заключается не в копировании и парсинге всего лога, а в разбиении, или вырезании всего содержимого при каждом чтении, что бы он не рос. Что бы каждый раз парсеру на обработку поступала только свежая информация, а не вся, накопившаяся со времени рестарта сервера.



1) Я бы для начала попробовал бы порыться в настройках сервера, чтобы разбить логирование в несколько файлов. Потому что когда все сыпется в одну корзину - это шлак. А обрабатывать шлак весьма загруженно… Не говоря уже о ошибках.
2) Чат делается не так, тут ПХП тебе не помощник. Для чата нужен живой обработчик - джумла, например.
Post #: 6
RE: Ротация логов или что то типа того - как разбивать лог файл - 2012-04-06 16:47:15.666666   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Да я не то сказал - я не чат имел ввиду, а просто мёртвую историю чата вывести хочу.
Post #: 7
Страниц:  [1]
Все форумы >> [*nix/Linux] >> Ротация логов или что то типа того - как разбивать лог файл







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.