告诉 journalctl 显示除特定设施之外的所有内容

告诉 journalctl 显示除特定设施之外的所有内容

我正在尝试清除日志中的 dhcpd 垃圾邮件。

使用rsyslog.confdhcpd.conf已经能够别管它/var/log/syslog把它放进去,/var/log/dhcpd.log这很棒。

但是,journalctl仍然会显示 dhcpd 垃圾邮件。

我如何指示 journalctl 使用“everything-but-X”过滤器?

我不想打字

$ journalctl --facility=kern,user,mail,....,local7

但将逻辑反转如下:

$ journalctl --facility=!local7

但后一种语法是错误的。有办法实现这一点吗?或者,过滤一下!dhcpd或者其他什么?

答案1

不幸的是,journalctl似乎不支持通过否定某个设施来排除输出。

可能的解决方法是:

  • 使用grep-v, --invert-match选项如下:

    journalctl | grep --line-buffered -v 'pattern'
    
  • 使用grepccze需要安装)日志着色器用于颜色编码输出,如下所示:

    journalctl | grep --line-buffered -v 'pattern' | ccze -A
    
  • 使用journalctl内置-g, --grep=选择PCRE2正则表达式模式按消息字段过滤条目,如下所示:

    journalctl --grep='pattern'
    

    这个对字符串取反比较棘手,但最好的办法可能是包含否定环视

相关内容