Переводы страниц руководства

Новости   Список переводов по пакетам   Все переводы   Репозиторий Debian   Как нам помочь   Участники проекта   Словарь терминов

Страницы руководства  - LOGROTATE (8)


НАЗВАНИЕ

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

ОБЗОР

logrotate [-dv] [-f|--force] [-s|--state файл_состояния] файл_конфигурации ..

ОПИСАНИЕ

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

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

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

Если в командной строке не указаны аргументы, 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
  Старые версии файлов журналов не сжимаются. Смотри также compress.
nocopy Не копировать исходный файл журнала и оставить его на месте (это перекрывает опцию copy).
nocopytruncate
  Не обрезать исходный файл журнала на месте после создания копии (это перекрывает опцию copytruncate).
nocreate
  Новые файлы журнала не создаются (это перекрывает опцию create).
nodelaycompress
  Не выполнять отложенное сжатие предыдущих файлов журналов в следующем цикле ротации (это перекрывает опцию delaycompress).
nomail Не отправляться старые файлы журналов на какой-либо адрес.
nomissingok
  Если файл журнала не существует, вызывает ошибку. Это опция используется по умолчанию.
noolddir
  Журналы ротируются в каталоге, в котором они обычно находятся (это перекрывает опцию olddir).
nosharedscripts
  Запустить сценарии prerotate и postrotate для каждого ротируемого журнала (это поведение по умолчанию, и оно перекрывает опцию sharedscripts).
notifempty
  Не ротировать журнал если он пуст (это перекрывает опцию ifempty).
olddir каталог
  Журналы перемещаются в каталог для ротации. Каталог должен находиться на том же физическом устройстве, где находятся ротируемые журналы и если не указано абсолютное путевое имя, то подразумевается путь относительно каталога, содержащего файл журнала. При использовании этой опции, все старые версии журнала остаются в каталоге. Эта опция может быть перекрыта опцией noolddir.
postrotate/endscript
  Строки между postrotate и endscript (каждая из которых должна быть в отдельной строке) выполняются после ротации файла журнала. Эти директивы могут встретиться только внутри определения файла журнала. Смотри также prerotate.
prerotate/endscript
  Строки между prerotate и endscript (каждая из которых должна быть в одной строке) выполнятся перед ротацией файла журнала и только если журнал будет действительно ротирован. Эти директивы могут встречаться только внутри определения файла журнала. Смотри также postrotate.
firstaction/endscript
  Строки между firstaction и endscript (каждая из которых должна быть в одной строке) выполняются однажды перед ротацией всех файлов журналов, совпадающих с шаблоном, перед запуском сценария prerotate и только если по меньшей мере один журнал действительно будет ротирован. Эти директивы могут встречаться только внутри определения файла журнала. Смотри также lastaction.
lastaction/endscript
  Строки между lastaction и endscript (каждая из которых должна быть в одной строке) выполняются однажды после того, как все файлы журналов, совпадающие с шаблоном, были ротированы, после запуска сценария postrotate и только если хотя бы один журнал был ротирован. Эти директивы могут встречаться только внутри определения файла журнала. Смотри также firstaction.
rotate количество
  Файлы журнала ротируются указанное количество раз перед тем, как будут удалены или отправлены на адрес, указанный в директиве mail. Если количество равно нулю, прежние версии удаляются, а не ротируются.
sharedscripts
  Обычно сценарии prerotate и postrotate выполняются для каждого ротируемого журнала, подразумевая что один сценарий может быть запущен несколько раз для тех файлов журналов, которые совпали с шаблоном (например /var/log/news/*). Если указана sharedscripts, сценарии запускаются только один раз, вне зависимости от того, как много журналов совпало с шаблоном. Однако, если ни один из журналов в шаблоне не требует ротации, сценарий всё же не будет запущен. Эта опция перекрывает опцию nosharedscripts и подразумевает опцию create.
size размер[G|M|k]
  Файлы журналов будут ротированы, если они выросли больше указанного размера в байтах. Если размер указан с буквой M, подразумевается размер в мегабайтах. Если используется буква G, то размер указан в гигабайтах. Если использована буква k, то размер указан в килобайтах. Правильными будут директивы size 100, size 100k, size 200M и size 1G.
start начало
  Начало - это число, используемое как основа ротации. Например, если вы укажете 0, журналы, полученные при ротации из исходных файлов журналов, будут создаваться начиная с расширения .0. Если вы укажете 9, файлы журналов будут создаваться начиная с расширения .9, пропуская 0-8. Файлы по-прежнему будут подвергаться ротации столько раз, сколько указано в директиве rotate.
tabooext [+] список
  Изменить текущий список запрещённых расширений (обратитесь к директиве include за информацией по запрещённым расширениям). Если список предваряет +, текущий список запрещённых расширений дополняется указанным списком, иначе - замещается. При начальной загрузке список запрещённых расширений содержит .rpmorig, .rpmsave, .dpkg-dist, .dpkg-old, .dpkg-new, .disabled, .v, .swp, .rpmnew, и ~. Члены списка разделяются пробелами - не запятыми.
weekly Файлы журналов подвергаются ротации, если текущий день недели меньше дня недели последней ротации или если со времени последней ротации прошло больше недели. Обычно ротация происходит также в первый день недели, но если logrotate не запускается каждую ночь, ротация журналов произойдёт при первой возможности.

ФАЙЛЫ

/var/lib/logrotate/status Файл состояния по умолчанию.
/etc/logrotate.conf Настроечные опции.

СМОТРИ ТАКЖЕ

gzip(1)

ЗАМЕЧАНИЯ

Программа killall(1) в Debian находится в пакете psmisc.

АВТОРЫ

Эрик Троан (Erik Troan) <ewt@redhat.com>

Престон Браун (Preston Brown) <pbrown@redhat.com>

Исправления и изменения для Debian внёс Пол Мартин (Paul Martin) <pm@debian.org>

АВТОРЫ ПЕРЕВОДА

Перевод выполнен на сайте коллективных переводов http://translated.by. Авторы перевода Владимир Ступин <wheelof@gmail.com>, Олег Безначев aka saturn721.

Red Hat Linux LOGROTATE (8) 5 ноября 2002, среда
Перейти в начало страницы |  Раздел 8 |  Главный указатель.
Сгенерировано manServer 1.07 из /home/stupin/man/man8/logrotate.8.gz с использованием макросов man.