如何从系统日志中过滤 mail.info?

Jef*_*eff 5 syslog rsyslog

如何从 /var/log/syslog (rsyslog.conf/Debian) 过滤 mail.info,同时保留大于或等于 mail.warn 的消息?

我已经尝试了附加和前置不同组合的几乎所有不同变体mail, mail.info, mail.!info, mail.*, mail.warn, mail.!warn,但显然文档比我更聪明。

目前我正在这样做,但可惜的是,她不行:

*.*;auth,authpriv.none;mail.warn,mail.!info -/var/log/syslog
Run Code Online (Sandbox Code Playgroud)

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

qua*_*nta 5

man rsyslog.conf页面:

Rsyslogd 对原始 BSD 源代码进行了语法扩展,这使得它的使用更加直观。您可以在每个优先级前面加上等号 ( =),以仅指定该单个优先级,而不指定上述任何优先级。您还可以(两者都有效)在优先级前面加上感叹号 ( !) 以忽略所有优先级,要么精确指定这个优先级,要么精确指定这个优先级和任何更高的优先级。如果您使用这两个扩展名,那么感叹号必须出现在等号之前,只需直观地使用它即可。

因此mail.!info意味着您忽略了info优先级和任何更高的优先级。尝试这个:

*.*;auth,authpriv.none;mail.warn,mail.!=info -/var/log/syslog
Run Code Online (Sandbox Code Playgroud)