rsyslog не вращается с фиксированным размером файла

Я пытаюсь создать отдельный файл журнала для приложения в Linux. До сих пор я создал скрипт .conf для разделения журнала в пользовательском файле журнала на основе имени программы, и он работает правильно.

Но я хочу ограничить размер файла журнала 10K, и я использую $outchannel для этой цели. Сценарий хранится в формате /etc/rsyslog.d/00-abc_log.conf:

$outchannel o_abc, /var/log/abc.log, 10240, /home/xyz/logrot
if $programname == 'abc' then :omfile:$o_abc

, а сценарий /home/xyz/logrot содержит следующее:

mv -f /var/log/abc.log /var/log/abc.log.1

Ниже предела в 10 К логирование работает правильно, но после превышения журнала Ограничение размера в 10 КБ, файл abc.log.1 не генерируется и регистрация в abc.log прекращается.

Если это имеет значение, моя система работает под управлением Xubuntu 12.04 rsyslog-5.8.6.

Спасибо заранее.

3
задан 17 December 2012 в 17:11

1 ответ

Ваша проблема возникает из-за того, что в приложении по-прежнему открыт дескриптор файла после его перемещения в файловой системе. Если вы не можете сказать программе перезапустить ведение журнала непосредственно после перемещения (обычно для демонов, есть сигнал для этого, например SIGHUP), вам придется использовать другой метод вращения, чем перемещение файлов, в которые записываются в это время [ 115]

Я предлагаю использовать logrotate следующим образом. Не проверял, так как вы не поделились приложением.

Создайте свой собственный файл конфигурации logrotate, например, abclogrotate.conf:

/var/log/abc.log {
    # don't use time based rotation, but size-based
    size 10k
    # don't move, but copy-and-truncate so the application won't have to be
    # told that the file has moved.
    copytruncate
    # maximum of one old file
    rotate 1
    # counting old files starts at 1 rather than 0
    start 1
    # don't use compression
    nocompress
}

Теперь вызывайте logrotate так: logrotate /path/to/abclogrotate.conf, а не ваш собственный скрипт.

0
ответ дан 17 December 2012 в 17:11

Другие вопросы по тегам:

Похожие вопросы: