Назад | Перейти на главную страницу

rsyslog ограничивает размер журнала

Можно ли это вообще сделать в rsyslog?

http://www.rsyslog.com/doc/rsyslog_conf_output.html

Этот синтаксис не работает:

mail.*              -/var/log/mail.log:300M

Мне нужно установить это ограничение в rsyslog вместо logrotate, потому что журнал может быстро заполнить раздел в случае какой-либо ошибки (даже до того, как он попадет в logrotate на следующий день) с почтовой системой с высоким трафиком.

Прежде всего, согласно документу, на который вы ссылаетесь, ваш синтаксис неверен, поскольку аргументы $ outchannel должны быть указаны через запятую, поэтому что-то вроде

$outchannel mail,/var/log/mail.log, 300000000,/path/to/rotate/script

было бы правильнее.

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

Я думаю, вы неправильно поняли саму команду outchannel, и вы не прочитали должным образом документ, на который вы ссылались, поскольку в нем прямо говорится:

Максимальный размер всегда должен указываться в байтах - на данном этапе разработки нет специальных символов (например, 1k, 1m, ...).