logrotate — выполняет ротацию, сжатие и отправку системных журналов
СИНТАКСИС
logrotate [--force] [--debug] [--state file] [--skip-state-lock] [--wait-for-state-lock] [--verbose] [--log file] [--mail command] config_file [config_file2 ...]
ОПИСАНИЕ
logrotate предназначен для упрощения администрирования систем, генерирующих большое количество файлов журналов.
Он позволяет автоматически выполнять ротацию, сжатие, удаление и отправку файлов журналов по электронной почте. Каждый файл журнала может
обрабатываться ежедневно, еженедельно, ежемесячно или когда он становится слишком большим.
Обычно logrotate запускается как ежедневная cron-задача. Он не будет изменять журнал более одного раза в день, если критерий для этого журнала не основан на размере журнала, и logrotate запускается более одного раза в день, или если не используется опция -f или --force.
На командной строке можно указать любое количество файлов конфигурации. Более поздние файлы конфигурации могут переопределять
параметры, указанные в более ранних файлах, поэтому порядок, в котором указаны файлы конфигурации logrotate, имеет значение. Обычно следует использовать один файл конфигурации, который включает другие необходимые файлы конфигурации. См. ниже, как использовать директиву include для этого. Если в командной строке указан каталог, каждый файл в этом каталоге используется в качестве файла конфигурации.
Если в командной строке не указаны аргументы, logrotate выводит версию и информацию об авторских правах, а также краткое описание использования. Если во время ротации журналов возникают какие-либо ошибки, logrotate завершается с ненулевым статусом, хотя файл состояния обновляется.
ОПЦИИ
-f, --force
Указывает logrotate принудительно выполнить ротацию, даже если он не считает это необходимым. Иногда это полезно после добавления новых записей в файл конфигурации logrotate или если старые файлы журналов были удалены вручную, поскольку новые файлы будут созданы, и ведение журнала будет продолжаться правильно.
-d, --debug
Включает режим отладки, что означает, что никакие изменения в журналы не вносятся, и файл состояния logrotate не обновляется. Выводятся только сообщения отладки.
-s, --state statefile
Указывает logrotate использовать альтернативный файл состояния. Это полезно, если logrotate запускается
от имени разных пользователей для разных наборов файлов журналов. Чтобы предотвратить параллельное выполнение, по умолчанию logrotate получает блокировку файла состояния. Если получить блокировку не удается, logrotate завершается со значением 3. Файл состояния по умолчанию — /var/lib/logrotate/status. Если в качестве файла состояния указан /dev/null, logrotate не будет пытаться заблокировать или записать файл состояния.
--skip-state-lock
Не блокировать файл состояния, например, если блокировка не поддерживается или запрещена.
--wait-for-state-lock
Ожидать, пока блокировка файла состояния не будет снята другим процессом logrotate. Эта опция может привести к тому, что logrotate будет ждать неопределенно долго. Используйте с осторожностью.
-v, --verbose
Включает подробный режим, например, для отображения сообщений во время ротации.
-l, --log file
Указывает logrotate записывать подробные выходные данные в файл log_file. Подробные выходные данные, записываемые в этот файл, идентичны тем, что выводятся при запуске logrotate с ключом -v. Файл журнала перезаписывается при каждом выполнении logrotate.
-m, --mail command
Указывает logrotate, какую команду использовать для отправки журналов по электронной почте. Эта команда должна принимать следующие аргументы:
1. тему сообщения, заданную с помощью '-s subject'
2. получателя.
Команда должна затем прочитать сообщение из стандартного ввода и отправить его по электронной почте получателю. Команда по умолчанию для отправки почты — /usr/bin/mail.
--usage
Выводит короткое сообщение об использовании.
-?, --help
Выводит сообщение справки.
--version
Отображает информацию о версии.
ФАЙЛ КОНФИГУРАЦИИ
logrotate считывает всю информацию о файлах журналов, которые он должен обрабатывать, из серии файлов конфигурации, указанных в командной строке. Каждый файл конфигурации может задавать глобальные параметры (локальные определения переопределяют глобальные, а более поздние определения переопределяют более ранние). Глобальные параметры не влияют на предшествующие директивы include. Простой файл конфигурации выглядит следующим образом:
# Пример файла конфигурации 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 _
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}
/var/log/news/* {
monthly
rotate 2
olddir /var/log/news/old
missingok
sharedscripts
postrotate
kill -HUP $(cat /var/run/inn.pid)
endscript
nocompress
}
~/log/*.log {}
Первые несколько строк задают глобальные параметры; в примере журналы сжимаются после их ротации. Обратите внимание, что комментарии могут появляться в любом месте файла конфигурации, при условии, что первым символом, отличным от пробела, в строке является #.
Значения отделяются от директив пробелом и/или необязательным знаком =. Числа должны быть указаны в формате, понятном функции strtoul(3).
Следующая часть файла конфигурации определяет, как обрабатывать файл журнала /var/log/messages. Журнал будет проходить пять еженедельных ротаций, прежде чем будет удален. После того, как файл журнала был ротирован (но до того, как старая версия журнала будет сжата), будет выполнена команда /usr/bin/killall -HUP syslogd.
Следующий раздел определяет параметры для /var/log/httpd/access.log и /var/log/httpd/error.log. Каждый файл ротируется, когда его размер превышает 100 килобайт, и старые файлы журналов отправляются (без сжатия) по электронной почте адресату _, после 5 ротаций, вместо того, чтобы удаляться. sharedscripts означает, что скрипт postrotate будет выполняться только один раз для этого раздела, а не один раз для каждого ротированного журнала. Обратите внимание, что имена файлов журналов могут быть заключены в кавычки (и кавычки необходимы, если имя содержит пробелы). Применяются стандартные правила экранирования оболочки, поддерживаются символы ', ", и .
В следующем разделе определены параметры для всех файлов в /var/log/news. Каждый файл ротируется ежемесячно.
В последнем разделе используется расширение тильды для ротации файлов журналов в домашней директории текущего пользователя. Это возможно только в том случае, если ваша библиотека glob поддерживает расширение тильды. GNU glob поддерживает это.
Пожалуйста, используйте подстановочные знаки с осторожностью. Если вы укажете *, logrotate будет ротировать все файлы, включая ранее ротированные. Одним из способов решения этой проблемы является использование директивы olddir или более точного подстановочного знака (например, *.log).
Обратите внимание, что по умолчанию, при использовании systemd(1), опция ProtectSystem=full установлена в файле logrotate.service. Это предотвращает изменение logrotate файлов в /etc и /usr.
Здесь представлена дополнительная информация о директивах, которые могут быть включены в файл конфигурации logrotate:
ДИРЕКТИВЫ ФАЙЛА КОНФИГУРАЦИИ
Эти директивы могут быть включены в файл конфигурации logrotate:
Ротация
rotate count
Файлы журналов ротируются count раз, прежде чем они будут удалены или отправлены по почте на адрес, указанный в директиве mail. Если count равно 0, старые версии удаляются, а не ротируются. Если count равно -1, старые журналы не удаляются вообще, за исключением того, что на них влияет maxage (используйте с осторожностью, это может привести к снижению производительности и нехватке дискового пространства). По умолчанию равно 0.
olddir directory
Журналы перемещаются в указанную директорию для ротации. Директория должна находиться на том же физическом диске, что и файл журнала, который ротируется, если не используются опции copy, copytruncate или renamecopy. Предполагается, что директория является относительной по отношению к директории, содержащей файл журнала, если не указан абсолютный путь. При использовании этой опции все старые версии журнала оказываются в указанной директории. Эта опция может быть отменена опцией noolddir.
noolddir
Журналы ротируются в директории, в которой они обычно находятся (это отменяет опцию olddir).
su user group
Файлы журналов ротируются под указанным пользователем и группой вместо использования пользователя/группы по умолчанию (обычно root). user указывает пользователя, используемого для ротации, а group указывает группу, используемую для ротации (см. раздел ПОЛЬЗОВАТЕЛЬ И ГРУППА для получения дополнительной информации). Если указанный здесь пользователь/группа не имеет достаточных прав для создания файлов с указанной вами в директиве create собственностью, это приведет к ошибке. Если logrotate запускается с правами root, рекомендуется использовать директиву su для ротации файлов в директориях, которые напрямую или косвенно находятся под контролем непривилегированных пользователей.
Частота
hourly Файлы журналов ротируются каждый час. Обратите внимание, что обычно logrotate настраивается на ежедневный запуск с помощью cron (или с помощью logrotate.timer при использовании [systemd]({filename}../../systemd)(1)). Вам нужно изменить эту конфигурацию и запускать logrotate каждый час, чтобы фактически ротировать журналы каждый час.
daily Файлы журналов ротируются ежедневно.
weekly [день_недели]
Файлы журналов ротируются раз в будний день или, если с момента последней ротации прошло не менее 7 дней (не учитывая точное время). Интерпретация дня недели следующая: 0 означает воскресенье, 1 означает понедельник, ..., 6 означает субботу; специальное значение 7 означает каждые 7 дней, независимо от дня недели. Если аргумент дня недели опущен, используется значение по умолчанию 0.
monthly
Файлы журналов ротируются в первый раз, когда logrotate запускается в месяце (обычно это происходит в первый день месяца).
yearly Файлы журналов ротируются, если текущий год отличается от года последней ротации.
size размер
Файлы журналов ротируются только в том случае, если они становятся больше указанного размера в байтах. Если после размера указана буква k, размер считается в килобайтах. Если используется M, размер считается в мегабайтах, а если G, то в гигабайтах. Таким образом, size 100, size 100k, size 100M и size 100G являются допустимыми. Этот параметр исключает возможность использования интервальных параметров времени и приводит к ротации файлов журналов независимо от времени последней ротации, если он указан после интервальных параметров времени (последний указанный параметр имеет приоритет).
Выбор файлов
missingok
Если файл журнала отсутствует, переходите к следующему файлу, не выдавая сообщения об ошибке. См. также nomissingok.
nomissingok
Если файл журнала не существует, выдайте ошибку. Это значение используется по умолчанию.
ignoreduplicates
Игнорируйте все последующие совпадения файла журнала.
ifempty
Ротируйте файл журнала, даже если он пуст, переопределяя параметр notifempty (ifempty используется по умолчанию).
notifempty
Не ротируйте файл журнала, если он пуст (это переопределяет параметр ifempty).
minage количество
Не ротируйте журналы, если они младше указанного количества дней.
maxage количество
Удаляйте ротированные журналы, старше указанного количества дней. Возраст проверяется только в том случае, если файл журнала должен быть ротирован. rotate -1 не препятствует удалению. Файлы отправляются по указанному адресу, если maillast и mail настроены.
minsize размер
Файлы журналов ротируются, когда они становятся больше указанного размера в байтах, но не раньше, чем указанный интервал времени (daily, weekly, monthly или yearly). Связанный параметр size аналогичен, за исключением того, что он исключает возможность использования интервальных параметров времени и приводит к ротации файлов журналов независимо от времени последней ротации, если он указан после интервальных параметров времени (последний указанный параметр имеет приоритет). При использовании minsize учитывается как размер, так и временная метка файла журнала.
maxsize размер
Файлы журналов ротируются, когда они становятся больше указанного размера в байтах, даже до указанного интервала времени (daily, weekly, monthly или yearly). Связанный параметр size аналогичен, за исключением того, что он исключает возможность использования интервальных параметров времени и приводит к ротации файлов журналов независимо от времени последней ротации, если он указан после интервальных параметров времени (последний указанный параметр имеет приоритет). При использовании maxsize учитывается как размер, так и временная метка файла журнала.
tabooext [+] список
Текущий список расширений, запрещенных для обработки, изменен (см. директиву include для получения информации о расширениях, запрещенных для обработки). Если перед списком расширений стоит символ "+", то текущий список расширений, запрещенных для обработки, расширяется, в противном случае он заменяется. При запуске список расширений, запрещенных для обработки, по умолчанию имеет следующее значение: ,v, .bak, .cfsaved, .disabled, .dpkg-bak, .dpkg-del, .dpkg-dist, .dpkg-new, .dpkg-old, .dpkg-tmp, .new, .old, .orig, .rhn-cfg-tmp-*, .rpmnew, .rpmorig, .rpmsave, .swp, .ucf-dist, .ucf-new, .ucf-old, ~
taboopat [+] список
Текущий список шаблонов glob, запрещенных для обработки, изменен (см. директиву include для получения информации о расширениях и шаблонах, запрещенных для обработки). Если перед списком шаблонов стоит символ "+", то текущий список шаблонов, запрещенных для обработки, расширяется, в противном случае он заменяется. При запуске список шаблонов, запрещенных для обработки, по умолчанию пуст.
Файлы и папки
create режим владелец группа, create владелец группа
Сразу после ротации (до выполнения сценария postrotate) файл журнала создается (с тем же именем, что и только что ротированный файл журнала). mode указывает режим для файла журнала в восьмеричной системе (аналогично chmod(2)), owner указывает пользователя, которому будет принадлежать файл журнала, а group указывает группу, к которой будет принадлежать файл журнала (см. раздел USER AND GROUP для получения подробной информации). Любые атрибуты файла журнала могут быть опущены, в этом случае значения для нового файла будут использовать те же значения, что и у исходного файла журнала для опущенных атрибутов. Этот параметр можно отключить с помощью параметра nocreate.
nocreate
Новые файлы журналов не создаются (это отменяет действие параметра create).
createolddir режим [владелец [группа]], createolddir [владелец [группа]]
Если каталог, указанный в директиве olddir, не существует, он создается. mode указывает режим для каталога olddir в восьмеричной системе (аналогично chmod(2)), owner указывает пользователя, которому будет принадлежать каталог olddir, а group указывает группу, к которой будет принадлежать каталог olddir (см. раздел USER AND GROUP для получения подробной информации). Если mode не указан, предполагается значение 0755. Этот параметр можно отключить с помощью параметра nocreateolddir.
nocreateolddir
Каталог olddir не создается logrotate, если он не существует.
copy Создает копию файла журнала, но не изменяет исходный файл. Этот параметр можно использовать, например, для создания снимка текущего файла журнала или когда какой-либо другой инструмент должен усекать или анализировать файл. При использовании этого параметра параметр `create` не будет иметь никакого эффекта, так как старый файл журнала остается на месте. Параметр `copy` позволяет хранить ротированные файлы журналов на разных устройствах с помощью директивы `olddir`.
nocopy Не создавать копию исходного файла журнала и оставлять его на месте. (отменяет действие параметра `copy`).
copytruncate
После создания копии обнуляет размер исходного файла журнала на месте, вместо того чтобы перемещать старый файл журнала и, возможно, создавать новый. Может использоваться, когда нельзя указать программе, чтобы она закрыла свой файл журнала, и в результате она может бесконечно продолжать записывать (добавлять) данные в предыдущий файл журнала. Следует отметить, что между копированием файла и его обнулением существует очень небольшой промежуток времени, поэтому некоторые данные журнала могут быть потеряны. При использовании этого параметра параметр create не будет иметь никакого эффекта, так как старый файл журнала останется на месте. Параметр copytruncate позволяет хранить повернутые файлы журналов на разных устройствах с помощью директивы olddir. Параметр copytruncate подразумевает norenamecopy.
nocopytruncate
Не обнуляет размер исходного файла журнала на месте после создания копии (это отменяет действие параметра copytruncate).
renamecopy
Файл журнала переименовывается во временное имя в той же директории путем добавления расширения ".tmp" к нему. После этого выполняется скрипт postrotate, и файл журнала копируется из временного имени в конечное имя файла. В конце временное имя файла удаляется. Параметр renamecopy позволяет хранить повернутые файлы журналов на разных устройствах с помощью директивы olddir. Параметр renamecopy подразумевает nocopytruncate.
norenamecopy
Не переименовывает и не копирует исходный файл журнала (это отменяет действие параметра renamecopy).
shred
Удаляет файлы журналов с помощью shred -u вместо unlink(). Это должно гарантировать, что журналы не будут читаемы после запланированного удаления; это отключено по умолчанию. См. также noshred.
noshred
Не использовать shred при удалении старых файлов журналов. См. также shred.
shredcycles count
Попросить GNU [shred]({filename}../../shred)(1) перезаписывать файлы журналов count раз перед удалением. Без этого параметра shred будет использовать значение по умолчанию.
allowhardlink
Поворачивать файлы с несколькими жесткими ссылками; это отключено по умолчанию. Целевой файл может быть очищен, например, с помощью shred или copytruncate. Используйте с осторожностью, особенно когда файлы журналов поворачиваются от имени пользователя root.
noallowhardlink
Не поворачивать файлы с несколькими жесткими ссылками. См. также allowhardlink.
Сжатие
compress
Старые версии файлов журналов сжимаются с помощью [gzip]({filename}../../gzip)(1) по умолчанию. См. также nocompress.
nocompress
Старые версии файлов журналов не сжимаются. См. также compress.
compresscmd
Указывает, какую команду использовать для сжатия файлов журналов. По умолчанию используется [gzip]({filename}../../gzip)(1). См. также compress.
uncompresscmd
Указывает, какую команду использовать для распаковки файлов журналов. По умолчанию используется gunzip(1).
compressext
Указывает, какое расширение использовать для сжатых файлов журналов, если включено сжатие. Значение по умолчанию соответствует значению, используемому для настроенной команды сжатия.
compressoptions
В командную строку можно передавать параметры программе сжатия, если она используется. По умолчанию для [gzip]({filename}../../gzip)(1) используется "-6" (смещено в сторону высокого сжатия за счет скорости). Если вы используете другую команду сжатия, вам может потребоваться изменить compressoptions, чтобы они соответствовали.
delaycompress
Отложить сжатие предыдущего файла журнала до следующего цикла ротации. Это имеет эффект только при использовании в сочетании с compress. Это можно использовать, когда какую-то программу нельзя заставить закрыть файл журнала, и, следовательно, она может продолжать записывать данные в предыдущий файл журнала в течение некоторого времени.
nodelaycompress
Не откладывать сжатие предыдущего файла журнала до следующего цикла ротации (это переопределяет опцию delaycompress).
Имена файлов
extension ext
Файлы журналов с расширением ext могут сохранять его после ротации. Если используется сжатие, расширение сжатия (обычно .gz) появляется после ext. Например, у вас есть файл журнала с именем mylog.foo, и вы хотите, чтобы он ротировался в mylog.1.foo.gz вместо mylog.foo.1.gz.
addextension ext
Файлам журналов присваивается окончательное расширение ext после ротации. Если исходный файл уже заканчивается на ext, расширение не дублируется, а просто перемещается в конец, то есть и filename, и filenameext будут ротироваться в filename.1ext. Если используется сжатие, расширение сжатия (обычно .gz) появляется после ext.
start count
Это число, которое будет использоваться в качестве базы для ротации. Например, если вы укажете 0, файлы журналов будут создаваться с расширением .0 при ротации из исходных файлов журнала. Если вы укажете 9, файлы журналов будут создаваться с расширением .9, пропуская 0–8. Файлы все равно будут ротироваться указанное количество раз с помощью директивы rotate.
dateext
Архивировать старые версии файлов журналов, добавляя расширение даты, например YYYYMMDD, вместо простого добавления числа. Расширение можно настроить с помощью опций dateformat и dateyesterday.
nodateext
Не архивировать старые версии файлов журналов с расширением даты (это переопределяет опцию dateext).
dateformat format_string
Укажите расширение для dateext, используя нотацию, аналогичную функции strftime(3). Разрешены только спецификаторы %Y, %m, %d, %H, %M, %S, %V, %s и %z. Значение по умолчанию - %Y%m%d, за исключением случая, когда используется часовая ротация, тогда значением по умолчанию является -%Y%m%d%H. Обратите внимание, что символ, разделяющий имя файла журнала и расширение, также является частью строки dateformat. Системные часы должны быть установлены после 9 сентября 2001 года, чтобы %s работала правильно. Обратите внимание, что метки времени, генерируемые этим форматом, должны быть лексически сортируемыми (то есть сначала год, затем месяц, затем день. Например, 2001/12/01 — это нормально, но 01/12/2001 — нет, потому что 01/11/2002 будет отсортирован ниже, хотя он позже). Это связано с тем, что при использовании опции rotate logrotate сортирует все ротированные имена файлов, чтобы определить, какие файлы журнала старше и должны быть удалены.
dateyesterday
Использовать вчерашнюю дату вместо сегодняшней для создания расширения dateext, чтобы ротированный файл журнала имел в своем имени дату, совпадающую с временными метками внутри него.
datehourago
Используйте "час назад" вместо текущей даты для создания расширения dateext, чтобы имя файла журнала, к которому применяется ротация, содержало час, совпадающий с временными метками внутри него. Полезно при часовой ротации.
Почта
mail address
Когда файл журнала выводится из текущего использования, он отправляется по адресу. Если для определенного журнала не требуется отправлять сообщения по почте, можно использовать директиву nomail.
nomail Не отправлять старые файлы журналов по почте.
mailfirst
При использовании команды mail, отправляйте по почте только что ротированный файл, а не файл, который скоро будет удален.
maillast
При использовании команды mail, отправляйте по почте файл, который скоро будет удален, а не только что ротированный файл (это значение по умолчанию).
Дополнительные файлы конфигурации
include file_or_directory
Читает файл, указанный в качестве аргумента, как если бы он был включен в строку там, где появляется директива include. Если указан каталог, большинство файлов в этом каталоге считываются в алфавитном порядке перед продолжением обработки включаемого файла. Файлы, которые не являются обычными файлами (например, каталоги и именованные каналы), а также файлы, чьи имена заканчиваются одним из запрещенных расширений или шаблонов, указанных директивами tabooext или taboopat соответственно, игнорируются. Указанный путь может начинаться с ~/ для относительного указания пути к домашнему каталогу пользователя, запускающего процесс. В целях безопасности файлы конфигурации не должны быть доступны для записи группой или всем пользователям.
Скрипты
sharedscripts
Обычно скрипты prerotate и postrotate запускаются для каждого файла журнала, который ротируется, и абсолютный путь к файлу журнала передается в качестве первого аргумента скрипту. Это означает, что один и тот же скрипт может быть запущен несколько раз для записей файлов журналов, которые соответствуют нескольким файлам (например, /var/log/news/*). Если указано sharedscripts, скрипты запускаются только один раз, независимо от того, сколько журналов соответствуют шаблону с подстановочными знаками, и весь шаблон передается им. Однако, если ни один из журналов в шаблоне не требует ротации, скрипты вообще не будут запущены. Если скрипты завершаются с ошибкой (или ротация какого-либо журнала не удалась), дальнейшие действия не будут выполнены ни для каких журналов. Эта опция переопределяет опцию nosharedscripts.
nosharedscripts
Запускайте скрипты prerotate и postrotate для каждого файла журнала, который ротируется (это значение по умолчанию, и оно переопределяет опцию sharedscripts). Абсолютный путь к файлу журнала передается в качестве первого аргумента скрипту. Абсолютный путь к окончательному ротированному файлу журнала передается в качестве второго аргумента скрипту postrotate. Если скрипты завершаются с ошибкой, дальнейшие действия не будут выполнены только для затронутого журнала.
firstaction
script
endscript
Скрипт выполняется один раз перед ротацией всех файлов журналов, соответствующих шаблону с подстановочными знаками, перед запуском скрипта prerotate и только в том случае, если хотя бы один журнал будет фактически ротирован. Эти директивы могут появляться только внутри определения файла журнала. Весь шаблон передается скрипту в качестве его первого аргумента. Если скрипт завершается с ошибкой, дальнейшая обработка не выполняется. См. также lastaction и раздел SCRIPTS.
lastaction
script
endscript
Скрипт выполняется один раз после того, как все файлы журналов, соответствующие шаблону с подстановочными знаками, были ротированы, после выполнения скрипта postrotate и только в том случае, если хотя бы один журнал был ротирован. Эти директивы могут появляться только внутри определения файла журнала. Весь шаблон передается скрипту в качестве его первого аргумента. Если скрипт завершается с ошибкой, отображается только сообщение об ошибке (поскольку это последнее действие). См. также firstaction и раздел SCRIPTS.
prerotate
script
endscript
Скрипт выполняется до ротации файла журнала и его старых журналов и только в том случае, если журнал действительно будет ротирован. Эти директивы могут появляться только внутри определения файла журнала. Обычно абсолютный путь к файлу журнала передается скрипту в качестве его первого аргумента. Если указан sharedscripts, весь шаблон передается скрипту. См. также postrotate и раздел SCRIPTS. См. sharedscripts и nosharedscripts для обработки ошибок.
postrotate
script
endscript
Скрипт выполняется после ротации файла журнала и перед сжатием файла журнала. Эти директивы могут появляться только внутри определения файла журнала. Обычно абсолютный путь к файлу журнала передается скрипту в качестве его первого аргумента, а абсолютный путь к конечному ротированному файлу журнала передается скрипту в качестве второго аргумента. Если указан sharedscripts, весь шаблон передается в качестве первого аргумента скрипту, а второй аргумент опускается. См. также prerotate и раздел SCRIPTS. См. sharedscripts и nosharedscripts для обработки ошибок.
preremove
script
endscript
Скрипт выполняется один раз непосредственно перед удалением файла журнала. logrotate передает имя файла, который вскоре будет удален, в качестве первого аргумента скрипту. См. также firstaction и раздел SCRIPTS.
SCRIPTS
Строки между начальным ключевым словом (например, prerotate) и endscript (обе директивы должны быть на отдельных строках) выполняются с помощью /bin/sh. Скрипт наследует некоторые характеристики от процесса logrotate, включая stderr, stdout, текущий каталог, окружение и umask. Скрипты выполняются от имени пользователя и группы, которые вызвали logrotate, независимо от любой директивы su. Если указан флаг --log, файловый дескриптор 3 является файлом журнала. Текущий рабочий каталог не определен.
USER AND GROUP
Идентификаторы пользователя и группы сначала разрешаются путем попытки использовать текстовое представление, а в случае сбоя — путем использования числового значения.
ФАЙЛЫ
/var/lib/logrotate/status Файл состояния по умолчанию.
/etc/logrotate.conf Файл конфигурации.
ССЫЛКИ
chmod(2), gunzip(1), gzip(1), mail(1), shred(1), strftime(3), strtoul(3), [https://github.com/logrotate/logrotate]
АВТОРЫ
Эрик Трован, Престон Браун, Ян Калуза.
[https://github.com/logrotate/logrotate]