Ротация логов FreeRadius

Однажды я устанавливал FreeRadius из исходного кода, по этому понадобилось сделать скрипт ротации логов, так как файл логов иногда вырастал до больших размеров, например при технических работах или разработке много отладочной информации могло записываться, при стандартной работе, логи почти не писались.

В установочных файлах есть пример конфигурации ротации логов:

cp /opt/freeradius-server-3.0.23/scripts/logrotate/freeradius /etc/logrotate.d/

/var/log/radius/radius.log {
        # common options
        daily
        rotate 14
        missingok
        compress
        delaycompress
        notifempty

        copytruncate
        su radiusd radiusd
}

Однако в моем случае файл radius.log находится в другом месте и с другими правами, по этому я сделал свой файл /etc/logrotate.d/freeradius:

/usr/local/freeradius/var/log/radius/radius.log {
        monthly
        rotate 3
        missingok
        compress
        delaycompress
        notifempty

        copytruncate
        su freerad freerad
}

Благодаря параметру «copytruncate», файл radius.log копируется в radius.log.1, и потом radius.log очищается до нулевого размера, вместо переименования в radius.log.1 и создания radius.log, чтобы не пришлось перезапускаться сервер FreeRadius.

Сделаем тест скрипта, чтобы убедится что нет например ошибки «Permission denied», как в моем случае на директорию с логами были права только для root пользователя:

logrotate -d /etc/logrotate.d/freeradius
chmod 777 /usr/local/freeradius/var/log/radius/

Если все ок, тогда принудительно запустим ротацию:

logrotate -f /etc/logrotate.d/freeradius

Статус можно посмотреть в файле /var/lib/logrotate/status

Смотрите также мои статьи:
ABillS. Установка Freeradius
Настройка logrotate для ротации логов

Оставьте комментарий

Добавить комментарий