LINUX.ORG.RU
ФорумAdmin

Помогите решить задачу с logrotate

 


0

1

Бьюсь уже не первый день, подскажите как реализовать такое.
У меня есть логи, которые генерит PHP скрипт в формате:
20180116.log
20180117.log
20180119.log
Что мне нужно от logrotate:

  1. Чтобы он ежедневно тупо архивировал лог, не добавляя в название дату, т.к. она уже есть в имени (как такое сделать я не нашёл)
  2. Чтобы он контролировал горизонт хранения архивных логов
  3. Есть риски, что при увеличении нагрузок каждый лог-файл начнёт быстро пухнуть, поэтому logrotate должен ещё реагировать на maxsize и в итоге дриектория с логами не должна переполнится


Последнее исправление: trider (всего исправлений: 1)

Проще и быстрее реализовать все на bash. Все ваши пункты можно реализовать этим, далее скрипт в крон и каждую минуту чекать, вот и все. К тому же можно ещё и кучу плюшек докрутить таких как отправка отчета в случае чего в телеграм и т.д.

yakunin
()

Не так это должно делаться - ваше приложение должно все время писать в один файл (какой-нибудь server.log, то есть без даты). Логротейту говорите ротировать этот файл, выставляете там максимальный размер, сжатие и вот это все. Горизонт хранения проще определить отдельным таском с find ... -mtime ... -delete.

micronekodesu ★★★
()

Есть риски, что при увеличении нагрузок каждый лог-файл начнёт быстро пухнуть, поэтому logrotate должен ещё реагировать на maxsize и в итоге дриектория с логами не должна переполнится

Допустим лог 20180119.log достиг размера и logrotate его сжал в 20180119.log.gz. В какой файл будет писать PHP скрипт? В 20180119.log? И потом logrotate им перепишет старый лог?

В logrotate есть nodateext, который просто добавляет цифру к имени и формат вида «~/log/*.log {}» который указывает какие файлы обрабатывать.

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

Допустим лог 20180119.log достиг размера и logrotate его сжал в 20180119.log.gz. В какой файл будет писать PHP скрипт?

php-скрипт заново создаст файл, если не найдёт файл с текущей датой в названии

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

php-скрипт заново создаст файл, если не найдёт файл с текущей датой в названии

И потом logrotate им перепишет старый лог?

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