- Использованные версии ПО:
# uname -sr FreeBSD 12.1-STABLE
# pkg info | grep logrotate logrotate-3.13.0_1 Daemon to rotate, compress, remove, and mail system log files
- Установка
# cd /usr/ports/sysutils/logrotate # make install clean
- Настройка
Основной файл настроек находится тут: /usr/local/etc/logrotate.conf. Я его не трогал. Настройки для логов разных программ принято хранить тут: /usr/local/etc/logrotate.d
Для автозапуска logrotate нужно добавить строчку в /etc/crontab:0 0 * * * root /usr/local/sbin/logrotate /usr/local/etc/logrotate.conf
- Настроим ежедневную ротацию для логов exim
Создадим файл /usr/local/etc/logrotate.d/exim-daily со следующим содержимым:/var/log/exim/mainlog { daily missingok rotate 30 compress delaycompress notifempty create 640 mailnull mail prerotate /usr/local/sbin/eximstats /var/log/exim/mainlog | /usr/bin/mail -s "Exim daily stat" root endscript } /var/log/exim/rejectlog { daily missingok rotate 30 compress delaycompress notifempty create 640 mailnull mail }
Неплохой список опций для конфига logrotate можно найти тут. Я же только скажу, что логи будут храниться за 30 последних дней, совсем старые будут архивироваться для экономии места на диске, новый файл лога будет создаваться с правами 640 и от пользователя mailnull и группы mail. Самые внимательные из вас наверняка уже заметили вот эти строчки, о них я хочу рассказать подробнее:prerotate /usr/local/sbin/eximstats /var/log/exim/mainlog | /usr/bin/mail -s "Exim daily stat" root endscript
Здесь мы предварительно натравливаем на лог файл утилиту eximstats для сбора и показа статистики и отправляем результаты по email пользователю root. Очень удобно.
Проверка в ручном режиме, без изменений в файлах:# logrotate -df /usr/local/etc/logrotate.d/exim-daily
Принудительная ротация лог-файлов в ручном режиме:# logrotate -f /usr/local/etc/logrotate.d/exim-daily
Статья опубликована: 2020-07-31 11:03:25
Последние правки: 2020-07-31 12:29:21
Установим logrotate на FreeBSD и настроим ротацию каких-нибудь логов.