如何从syslog过滤mail.info?

如何在保留邮件大于或等于mail.warn的情况下从/ var / log / syslog(rsyslog.conf / Debian)过滤mail.info?

我已经试过几乎所有不同的mail, mail.info, mail.!info, mail.*, mail.warn, mail.!warnmail, mail.info, mail.!info, mail.*, mail.warn, mail.!warn不同组合的变体,但显然这些文档比我更聪明。

目前我在这,但唉,她是一个不行:

 *.*;auth,authpriv.none;mail.warn,mail.!info -/var/log/syslog 

编辑:我很难理解分号分隔符以及它如何“限制”以前的条目。

man rsyslog.conf页面:

Rsyslogd具有原始BSD源语法扩展,使其更直观。 您可以在每个优先级之前加上等号( = )来指定只有这个优先级,而不是上面的任何一个。 你也可以(两者都是有效的)在优先级之前用一个感叹号( ! )来忽略所有的优先级,或者确定这个或者这个以及任何更高的优先级。 如果您使用两个扩展名,而感叹号必须在等号之前出现,请直观地使用它。

所以mail.!info意味着你忽略了info优先级和更高的优先级。 尝试这个:

 *.*;auth,authpriv.none;mail.warn,mail.!=info -/var/log/syslog 

我发现了Quanta的答案,似乎也有效。 我有一个想法,为什么他们的工作,但我不够有信心rsyslog.conf的定界符和运营商能够肯定地说。 希望他们帮助别人。

一。

 *.*;\ auth,authpriv.none;\ mail.!info,mail.warn -/var/log/syslog 

二。

 *.*;\ mail.none;\ mail.error;\ auth,authpriv.none -/var/log/syslog 

任何对这些知识更好的人的评论都会受到欢迎。