Если конфигурация logrotate указана с параметрами «size» и «daily», какой из них имеет приоритет? Где это задокументировано? Мне бы хотелось, чтобы эти повороты происходили как логическая операция ИЛИ, т. Е. Если журналы имеют дневной возраст, они вращаются, ИЛИ, если они больше определенного размера, они также будут вращаться. Однако в настоящее время logrotate использует только директиву size и, по-видимому, игнорирует директиву daily. Logrotate настроен на запуск каждый час. ОС Linux, производные от Red Hat и Debian.
Также я указываю сначала «ежедневно», а затем «размер» в начале файла. Не уверен, что порядок имеет значение, но в любом случае, сначала нужно войти в файл конфигурации ...
Благодарность!
Ответы:
Если используется директива size , logrotate будет игнорировать ежедневные , еженедельные , ежемесячные и годовые директивы. Это не ясно в документации, когда вы выполняете
man logrotate
команду. Однако это может быть подтверждено на практике, и упоминается в некоторых произвольных сообщениях в блоге, таких как этот .Существует директива minsize, которая, согласно man-странице logrotate, является единственной директивой размера, которую можно использовать вместе со временными. Тем не менее, это все еще не то, что вы хотите. Использование minsize с daily по сути говорит: вращайте журналы ежедневно, но только тогда, когда они имеют размер не менее #MB .
На сегодняшний день я не нашел способа с logrotate выполнить требуемое условие: вращаться каждый день, если размер не превышает #MB, в этом случае вращаться немедленно . Я не думаю, что это поддерживается с использованием только директив logrotate. Это может быть возможно сделать с некоторыми умными сценариями с помощью директив ловушек сценария, таких как prerotate , postrotate , firstaction и lastaction .
Обновление :
Начиная с logrotate 3.8.1,
maxsize
иtimeperiod
поддерживаются вместе, что было бы идеальным решением. См. Ответ на этот пост: Как вращать журнал на основе интервала, если журнал не превышает определенный размер?источник
maxsize
иtimeperiod
поддерживаются. За serverfault.com/questions/474941/…Первый ответ @egg, согласно моему опыту с logrotate, не соответствует действительности!
Если ежедневно, ежемесячно ... приходите первыми и после этой директивы размера , ежедневная, ежемесячная ... будет игнорироваться и директива размера будет применяться к файлу журнала.
Точно так же, когда я впервые использую директиву size, а затем ежедневную, еженедельную, ежемесячную и ежегодную директивы, директива size будет игнорироваться.
источник
Если вы добавите Ежедневно, он будет вращаться каждый день, даже если выполнено условие Размер. Если вы также добавите условие размера, вы можете получить два поворота за один день, в зависимости от того, насколько многословна запись в журнал.
Если ежедневник идет первым в сценарии, то размер может не сработать.
источник
На самом деле, моя справочная страница в Red Hat, похоже, довольно ясно показывает разницу между размерами и размерами:
источник