Logrotate используя только maxage - PullRequest
       25

Logrotate используя только maxage

0 голосов
/ 18 февраля 2020

Я пытаюсь настроить довольно простое logrotate и из того, что я понял, он должен поддерживать опцию maxage, упомянутую здесь (https://linux.die.net/man/8/logrotate). Это также упоминается под моим man logrotate. Я бегу logrotate 3.8.6.

Так что я хотел бы просто вращаться в зависимости от возраста и не использовать счетчик вращения. Я вижу много примеров, когда люди используют и с вращением, и с maxage вместе. Но из того, что я понимаю в человеке, не может быть невозможным использовать только массаж.

По сути, у меня есть сценарий, в котором у меня есть несколько вращений в день данного файла журнала, поэтому я никак не могу предсказать число вращений. И установка его в слишком большое число является серьезным ударом по производительности, а также болью в задней части, чтобы отлаживать с -v.

Так что просто старайтесь сохранить ВСЕ файлы журналов в течение X дневного периода, который потенциально может быть довольно большим окном в несколько лет.

Есть идеи?

1 Ответ

0 голосов
/ 25 марта 2020

Для справочной страницы:

rotate *count*
  Log files are rotated count times before being removed or mailed to the address specified 
  in a mail directive. If count is 0, old versions are removed rather than rotated. Default 
  is 0.

Значение по умолчанию для этого значения равно нулю, если вы не установите его, то есть оно удаляет все, что вращается. Это можно увидеть из отладочного дампа, сначала с моим существующим конфигом (поворот 4):

rotating pattern: /var/log/boot.log
 after 1 days (7 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/boot.log
  log does not need rotating (log is empty)
rotating pattern: /var/log/chrony/*.log  weekly **(4 rotations)**

против того, когда я комментирую эту строку и оставляю ее неопределенной где-либо:

rotating pattern: /var/log/boot.log
 after 1 days (7 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/boot.log
  log does not need rotating (log is empty)
rotating pattern: /var/log/chrony/*.log  weekly **(no old logs will be kept)**

Одной из основных целей logrotate является управление объемом занимаемой памяти; вращение в бесконечность, не удаляя ничего, противоречит этой цели. Вы также не опубликовали свой фактический файл конфигурации, поэтому я не знаю, против каких других параметров вы вращаетесь.

Если вы вращаетесь несколько раз в день, я бы предложил регулярно перемещать эти параметры. уже повернутые журналы из этого каталога, так что logrotate больше никогда их не рассматривает. Таким образом, ваша конфигурация становится намного проще.

...