Как настроить автоматическую ротацию логов во 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