Как настроить автоматическую ротацию логов во FreeBSD

В инструкции мы рассмотрим установку и настройку утилиты logrotate для автоматической ротации логов.

Установка и настройка logrotate

Для начала установим утилиту, так как по умолчанию его нет во FreeBSD:

pkg install logrotate

Теперь создадим файл с настройкой ротации логов. Удобнее для каждой службы создавать отдельную конфигурацию, например:

ee /usr/local/etc/logrotate.d/oracle

и добавте в него следующее:

/u01/app/oracle/diag/tnslsnr/listener/alert/*.xml {
rotate 5
missingok
notifempty
daily
compress
nocreate
maxage 30
}

В данном примере создана конфигурация для ротации логов ORACLE по следующему принципу:

Искать все файлы, заканчивающиеся на .xml в каталоге /u01/app/oracle/diag/tnslsnr/listener/alert .
rotate 5 — хранить последние 5 ротированных файлов. Остальные удалять.
missingok — если файла не существует, не выкидывать ошибку.
notifempty — если файл пустой, не выполнять никаких действий.
daily — делать ротацию каждый день.
compress — сжимать ротированные файлы.
nocreate — не создавать новый файл.
maxage 30 — хранить ротированные файлы за последние 30 дней. Остальные удалять.

Данных параметров больше. Вот неплохое описание параметров logrotate .

Чтобы вручную запустить ротацию, введите следующую команду:

logrotate -f /usr/local/etc/logrotate.d/oracle

Для автоматического запуска необходимо создать задание в cron :

0 0 * * * /usr/local/sbin/logrotate /usr/local/etc/logrotate.conf

* в данном примере задание будет выполняться каждый день в 00:00

Читайте также

1. Ротация логов в Linux и FreeBSD с помощью logrotate .

2. Примеры настроек logrotate для различных программ .

EnglishRussianUkrainian