LINUX.ORG.RU

open и logrotate


0

1

Нужно все время парсить лог файл на скриптовом языке ( python ). Использовать tail в отдельном шелле религия не позволяет :), а при применении подобным методик( с использованием open ): http://pypi.python.org/pypi/tailer/0.2.1 при логротате на сервере скрипт перестает работать. Есть ли изящное решение данной проблемы ?

★★☆☆

Да, перезапускать ваш парсер после ротации, логов. Или дать ей понять, что надо бы переоткрыть файл(ы). Сигнал, допустим, послать, ну, а в парсере поймать и обработать.

shylent
()

используй ротацию переименованием (с сохранением inode), а в скрипте заюзай inotify

Reset ★★★★★
()

Если событийное программирование не отвращает, кроме inotify можно заюзать stat из libev.

gh0stwizard ★★★★★
()
Ответ на: комментарий от Reset

Какой ужас. Неужели это проще (ну, «изящнее», говоря словами ТС), чем перезапустить, допустим, парсер в postrotate? Вы бы еще модуль ядра присоветовали написать.

shylent
()
Ответ на: комментарий от shylent

Это гарантированно работает. При перезапуске парсера мы можем потерять (и с вероятностью 99% потеряем) строки в старом логе.

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.