Если конфигурация logrotate указана с параметрами «size» и «daily», какая из них имеет приоритет? Где это задокументировано? Я хотел бы, чтобы эти ротации выполнялись как логическая операция ИЛИ, т. Е. Если журналы старше одного дня, они меняются ИЛИ, если они больше определенного размера, они также будут повернуты. Однако в настоящее время logrotate использует только директиву size и, похоже, игнорирует директиву daily. Logrotate настроен на запуск каждый час. ОС - это производные Linux, Red Hat и Debian.
Кроме того, я сначала указываю «ежедневно», а затем «размер» от начала файла. Не уверен, что порядок имеет значение, но в любом случае он должен быть первым в файле конфигурации ...
Спасибо!
Если размер директива, logrotate игнорирует ежедневно, еженедельно, ежемесячно, и ежегодно директивы. Это не ясно в документации, когда вы выполняете man logrotate
команда. Однако это может быть подтверждено на практике и упоминается в некоторых произвольных сообщениях в блогах. такой как этот.
Есть директива под названием миниатюрный которая, согласно справочной странице logrotate, является единственной директивой размера, которая может использоваться вместе с директивами времени. Однако это все еще не то, что вам нужно. С помощью миниатюрный с участием ежедневно по существу говорит: меняйте журналы ежедневно, но только если они размером не менее # МБ.
На сегодняшний день я не нашел способа с помощью logrotate выполнить необходимое условие: чередовать каждый день, если размер не превышает # МБ, в этом случае чередовать немедленно. Я не думаю, что это поддерживается только с помощью директив logrotate. Возможно, удастся создать какой-нибудь умный сценарий с помощью таких директив, как предварительное вращение, постротация, первое действие, и последнее действие.
Обновить:
Начиная с logrotate 3.8.1, maxsize
и timeperiod
поддерживаются вместе, что было бы идеальным решением. См. Ответ на этот пост: Как повернуть журнал на основе интервала, если журнал не превышает определенный размер?
Первый ответ @egg, согласно моему опыту работы с logrotate, неверен!
Если ежедневно, ежемесячно, ... приходить первый и после этого размер директива ежедневно, ежемесячно, ... будут проигнорированы и размер директива будет применяться к файлу журнала.
Точно так же, когда я впервые использую размер директива тогда ежедневно, еженедельно, ежемесячно и ежегодно директивы, размер директива будет проигнорирована.
Если вы добавите Daily, он будет чередоваться каждый день, даже если выполняется условие Size. Если вы также добавите условие размера, вы можете получить две ротации за один день в зависимости от того, насколько подробный журнал.
Если Daily идет первым в скрипте, то Size может не сработать.
На самом деле, моя страница руководства по Red Hat, кажется, довольно ясно показывает различия между размером и максимальным размером:
минимальный размер
Log files are rotated when they grow bigger then size bytes, but not before the additionally specified time interval (daily, weekly, monthly, or yearly). The related size option is similar except that it is mutually exclusive with the time interval options, and it causes log files to be rotated with- out regard for the last rotation time. When minsize is used, both the size and timestamp of a log file are considered.