如何在保留邮件大于或等于mail.warn的情况下从/ var / log / syslog(rsyslog.conf / Debian)过滤mail.info?
我已经试过几乎所有不同的mail, mail.info, mail.!info, mail.*, mail.warn, mail.!warn , mail, 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
任何对这些知识更好的人的评论都会受到欢迎。