rsyslog 限制日志大小

rsyslog 限制日志大小

这在 rsyslog 中可以做到吗?

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

此语法无效:

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

我需要在 rsyslog 而不是 logrotate 中设置这个限制,因为在高流量邮件系统出现某些错误时(甚至在第二天到达 logrotate 之前),日志很快就会填满分区。

答案1

首先,根据你链接的文档,你的语法是错误的,因为 $outchannel 的参数应该用逗号分隔,所以类似

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

会更正确。

其次,outchannel 在达到最大大小时会触发一些脚本。它不会停止写入,而是运行脚本并再次检查。因此,您仍然需要一个在触发后减少日志文件大小的脚本。

我认为您误解了 outchannel 命令本身,并且您没有正确阅读您链接的文档,因为它明确指出:

最大大小必须始终以字节为单位指定 - 在开发的这个阶段没有特殊符号(如 1k、1m……)。

相关内容