На странице руководства logrotate:
миниатюрный размер
Файлы журналов меняются, когда они становятся больше, чем размер в байтах, но не раньше, чем через дополнительно указанный интервал времени (ежедневно, еженедельно, ежемесячно или ежегодно). Опция связанного размера аналогична, за исключением того, что она является взаимоисключающей с опциями временного интервала и вызывает ротацию файлов журнала без учета последнего времени ротации. Когда используется minsize, учитываются как размер, так и временная метка файла журнала.размер размер
Файлы журнала поворачиваются, когда они превышают размер в байтах. Если за размером следует k, предполагается, что размер указан в килобайтах. Если используется M, размер указывается в мегабайтах, а если используется G, размер указывается в гигабайтах. Таким образом, размер 100, размер 100k, размер 100M и размер 100G являются действительными.
Я установил размер так как 5 млн и интервал так как еженедельно думая, что журналы будут обновляться еженедельно, и дополнительная ротация будет происходить, если размер журнала превысит 5M. Но происходит то, что журнал не поворачивается, если он не превышает 5M, что, похоже, миниатюрный должен делать.
Я неправильно интерпретирую руководство? Как мне заставить журнал обновляться еженедельно, И если он превышает 5 миллионов?
РЕДАКТИРОВАТЬ:
Я не уверен, актуальна ли следующая информация, но просто в дополнение:
Я использую rsyslog для ведения основного журнала сообщений, безопасности, cron, maillog, загрузки. Ниже приведены дата ротации и размер файла предпоследних журналов, размер и интервал которых установлены, как описано выше:
filename rotation date file size
messages 20130129 5.3MB
secure 20130113 5.1kB
cron 20130113 3.6kB
maillog 20130113 1.1kB
Как видно, ротацию подвергаются только сообщения.
РЕДАКТИРОВАТЬ2:
Я должен был проверить с man logrotate
. Они фактически обновили его с помощью максимальный размер вариант. Это должно быть то, что я ищу:
максимальный размер размер
Файлы журнала меняются, когда они превышают размер в байтах, даже до дополнительно указанного временного интервала (ежедневно, еженедельно, ежемесячно или ежегодно). Опция связанного размера аналогична, за исключением того, что она является взаимоисключающей с опциями временного интервала и вызывает ротацию файлов журнала без учета последнего времени ротации. Когда используется maxsize, учитываются как размер, так и временная метка файла журнала.
Здесь даны ответы на некоторые вопросы: logrotate ежедневно и размер?
Обычно logrotate
будет запускаться только один раз в день, поэтому ограничения по размеру не будут соблюдаться в точности. logrotate
файл состояния (возможно /var/lib/logrotate.status
) хранит только даты (не время), он не предназначен для более частого использования, поэтому вы не можете тривиально вращать файлы чаще (Обновить: версия 3.85 добавляет ежечасно support и сохраняет полную временную метку в файле состояния.)
Вы не говорите, какой syslogd
вы используете, rsyslog и syslog-ng поддерживают самоуправляемое вращение на основе размера, поэтому вы должны иметь возможность вращать их по размеру и получать logrotate
ротацию еженедельно (хотя может потребоваться некоторое размышление для именования файлов, чтобы убедиться, что одновременная ротация файлов случайно что-то не удалит).
Еще один вариант - использовать конвейерные журналы, как и Apache, на самом деле Apache-2.4 rotatelogs
поддерживает именно эту функцию (предыдущие версии поддерживали только размер или время независимо). Вы не говорите, откуда берутся журналы, но вы можете войти в канал или FIFO и использовать rotatelogs
, если это поддерживается.
С участием logrotate
<= v3.8.0 три поддерживаемых сценария:
logrotate-3.8.1
добавляет:
logrotate
в этом случае может потребоваться запускать чаще, чем по умолчанию, один раз в день.logrotate-3.8.5
добавляет:
logrotate
(как минимум) ежечасно для этого.