man logrotate(8) - ротация, сжатие, и пересылка системных журналов

Erik Troan, Preston Brown, Paul Martin, “man logrotate(8) - rotates, compresses, and mails system logs ”, public translation into Russian from English More about this translation.

Translate into another language.

НАЗВАНИЕ

logrotate - ротация, сжатие, и пересылка системных журналов

ОБЗОР

logrotate [-dv] [-f|--force] [-s|--state statefile] config_file ...

ОПИСАНИЕ

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

Обычно logrotate запускается ежедневно службой cron. Он будет изменять журнал чаще раза в день, если критерий для этого журнала основывается на размере журнала и logrotate запускается чаще раза в день, или если используется опция -f или --force.

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

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

ОПЦИИ

-d

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

-f, --force

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

-m, --mail <команда>

Сообщает logrotate какую команду использовать для отправки журналов. Эта команда должна принимать два аргумента: 1) тема сообщения, и 2) получатель. Затем команда должна прочитать сообщение со стандартного ввода и отправить его получателю. По умолчанию в качестве команды отправки используется /usr/bin/mail -s.

-s, --state <файл_состояния>

Сообщает logrotate использовать другой файл состояния. Это полезно если logrotate запускается разными пользователями для разных наборов журнальных файлов. По умолчанию файлом состояния является /var/lib/logrotate/status.

--usage

Вывести короткую справку по использованию.

-v, --verbose

Выводить сообщения во время ротации.

КОНФИГУРАЦИОННЫЙ ФАЙЛ

logrotate читает всё о файлах журналов, которые он должен обрабатывать из серии конфигурационных файлов, указанных в командной строке. Каждый конфигурационный файл может устанавливать глобальные опции (местные определения переопределяют глобальные, а более поздние определения переопределят предыдущие) и указывает несколько файлов журналов для ротации. Простой конфигурационный файл выглядит как этот:

#простой конфигурационный файл

compress

/var/log/messages {

rotate 5

weekly

postrotate

/usr/bin/killall -HUP syslogd

endscript

}

"/var/log/httpd/access.log" /var/log/httpd/error.log {

rotate 5

mail www@my.org

size 100k

sharedscripts

postrotate

/usr/bin/killall -HUP httpd

endscript

}

/var/log/news/news.crit {

monthly

rotate 2

olddir /var/log/news/old

missingok

postrotate

kill -HUP `cat /var/run/inn.pid`

endscript

nocompress

}

Первые несколько строк устанавливают глобальные опции; в примере журналы после ротации будут сжаты. Учтите, что комментарии, начинающиеся cо знака # и заканчивающиеся концом строки, могут появляться в любом месте конфигурационного файла.

Следующий раздел конфигурационного файла определяет как обрабатывать файл журнала /var/log/messages. Журнал будет проходить через пять еженедельных ротации, прежде чем будет удален. После ротации файла журнала (но перед тем как старая версия журнала будет сжата), будет выполнена команда /sbin/killall -HUP syslogd.

Следующий раздел определяет параметры для файлов /var/log/httpd/access.log и /var/log/httpd/error.log. Каждый из них подвергается ротации, когда их размер достигает 100k, а старые файлы журналов после прохождения 5 ротаций пересылаются (несжатыми) на адрес www@my.org, прежде чем они будут удалены. sharedscripts означает что сценарий postrotate будет запущен один раз (после сжатия старых файлов журналов), но не по одному разу для каждого ротируемого журнала. Отметим, что имена файлов журналов быть заключены в кавычки (и кавычки обязательны, если имя содержит пробелы). Применимы обычные правила оболочки для заключения в кавычки, поддерживаются символы ', ", и \.

Последний раздел определяет параметры для всех файлов в /var/log/news. Каждый файл подвергается ежемесячной ротации. Это задаётся единственной директивой ротации, а если происходит ошибка более чем в одном файле, файлы журналов не сжимаются.

Будьте осторожны при использовании шаблонов. Если вы укажете *, logrotate произведет ротацию всех файлов, включая уже обработанные. Чтобы избежать этого, воспользуйтесь директивой olddir или более точным шаблоном (например *.log).

Если каталог /var/log/news не существует, то logrotate сообщит об ошибке. Такое сообщение не может быть отключено с помощью директивы missingok.

Далее следует более подробная информация о директивах, которые могут быть включены в конфигурационный файл logrotate:

compress

Сжать старые файлы журналов с помощью gzip(1) (по умолчанию). Смотри также nocompress.

compresscmd

Указывает команду, с помощью которой происходит сжатие файлов журналов. По умолчанию это gzip(1). Смотри так же compress.

uncompresscmd

Указывает команду, с помощью которой производится разжатие файлов журналов. По умолчанию gunzip(1).

compressext

Указывает расширение, которое используется для сжатых файлов журналов, если сжатие включено. Умолчание зависит от того, какая команда сжатия используется по умолчанию (.gz).

compressoptions

Опции командной строки, которые будут переданы программе сжатия, если она используется. По умолчанию для gzip это "-9" (максимальное сжатие).

copy

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

copytruncate

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

create режим владелец группа

Сразу после ротации (до запуска сценария postrotate) создать файл журнала (с таким же именем, как у только что ротированного файл журнала). Поле "режим" определяет режим для файла журнала в восьмеричном представлении (как в chmod(2)), поле "владелец" определяет имя пользователя который является владельцем этого файла журнала, и поле "группа" определяет группу, которой принадлежит файл журнала. Любой из этих атрибутов может быть пропущен, в таком случае для пропущенных атрибутов будут использоваться атрибуты исходного файла журнала. Эта опция может быть отключена с помощью опции nocreate.

daily

Ежедневная ротация файлов журналов.

dateext

К архиву старых версий файлов журналов ежедневно добавляется расширение подобное ГГГГММДД вместо простого добавления номера.

delaycompress

Отсрочка сжатия предыдущего файла журнала на следующий цикл ротации. Эта опция действует только совместно с опцией compress. Она может использоваться когда некой программе нельзя указать закрыть ее файл журнала и таким образом она может продолжать писать в старый журнал на протяжении некоторого времени.

extension расширение

Имена файлов журналов дополняются расширением "расширение" после ротации. Если используется сжатие, расширение архиватора (обычно .gz) добавляется после него.

ifempty

Ротация файла лога, даже если он пустой, отменяет опцию notifempty (ifempty используется по умолчанию)

include файл_или_каталог

Читать файл переданный как аргумент, как если бы он был в том месте, где встретилась директива include. Если задан каталог, большинство файлов в этом каталоге будут прочитаны в алфавитном порядке, перед тем как возобновится обработка включающего файла. Игнорируются только те файлы, которые не являются обычными файлами (например, каталоги и именованные каналы) и файлы, имена которых содержат запретные расширения, указанные директивой tabooext. Директива include не может появляться внутри определения файла журнала.

mail адрес

Если файл прошёл полный цикл ротации, то перед уничтожением он будет отправлен на указанный адрес. Если определённый журнал не должен отправляться по почте, можно воспользоваться директивой nomail.

mailfirst

При использовании команды mail, отправлять только что обработанный файл, вместо готовящегося устареть.

maillast

При использовании команды mail, отправлять файл готовящийся устареть, вместо только что обработанного (по умолчанию).

maxage счётчик

Удалять ротированные файлы журналов, которые старше указанного количества дней. Возраст проверяется только если файл журнала будет ротирован. Файлы отправляются по указанному адресу, если maillast и mail были настроены.

missingok

Если файл журнала отсутствует, перейти к следующему без создания сообщения об ошибке. Смотри также nomissingok.

monthly

Файлы журналов ротируются при первом запуске logrotate в новом месяце (обычно это первый день месяца).

nocompress

Pages: ← previous Ctrl next
1 2

Original (English): man logrotate(8) - rotates, compresses, and mails system logs

Translation: © Владимир Ступин, saturn721, yet_another_anonymous_user, Alexey .

translated.by crowd

Like this translation? Share it or bookmark!