Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python, как понять, что прошла ротация файла? / 5 сообщений из 5, страница 1 из 1
07.12.2020, 14:47
    #40025267
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python, как понять, что прошла ротация файла?
Доброго времени, всем!

Имеется скрипт, читающий из лог-файла, необходимо переоткрывать лог-файл если прошла его ротация.
Как понять\отследить, что прошла ротация?


ОС: debian 9
ротация: logrotate
...
Рейтинг: 0 / 0
07.12.2020, 15:46
    #40025302
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python, как понять, что прошла ротация файла?
Пока переписал на сравнение inode. Если изменилась inode значит прошла ротация.
...
Рейтинг: 0 / 0
07.12.2020, 16:24
    #40025323
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python, как понять, что прошла ротация файла?
Guzya
Как понять\отследить, что прошла ротация?
Когда-то давно я проверял длину файла. Если она меньше предыдущей прочитанной позиции, то читаем с начала, иначе с предыдущей прочитанной позиции.
...
Рейтинг: 0 / 0
07.12.2020, 17:28
    #40025356
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python, как понять, что прошла ротация файла?
Я то же работаю с позицией, дочитываю.
Проблемы возникают, когда в лог почти ни чего не пишется.

Т.е. на боевом сервере(БД) проблем не было, в лог активно постоянно что-то пишется.
А вот когда запустил скрипт на реплике, обнаружил грабли. Поскольку в лог почти ни чего не падает (в плоть до пустого лог-файла),
то можно получить ситуацию, когда произойдет ротация + запись в лог и получиться, что размер больше предыдущего.

Пробовал ч\з время последней модификации, т.е. если за 5 сек. ни одной прочитанной строки, а время модификации поменялось значит ротация
прошла, но не прокатило. Поймал ситуацию, когда в файл прошла запись после попытки из него прочитать, но до проверки времени модификации.
И получал ложное срабатывание.
...
Рейтинг: 0 / 0
14.12.2020, 12:06
    #40027584
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python, как понять, что прошла ротация файла?
Сравнение inode не взлетело. Оказалось, что inode не меняется.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python, как понять, что прошла ротация файла? / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]