Rsyslog

如何根據否定語法否定某些消息

  • February 16, 2019

我想使用否定來阻止某些消息在基於$rawmsg.

消息例如:

(root) CMD (LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok)

我試過但沒有工作:

if $rawmsg !contains '(root) CMD ' then  ?wcc-logs
& stop

之前的文章有關

您需要正確地對錶達式進行分組。在腳本中,您需要使用“not”而不是“!”。此外,not 必須在要否定的表達式之前。所以正確的語法是

if not ($rawmsg contains '(root) CMD ') then  {
   ?wcc-logs
   stop
}

我使用括號只是為了澄清。我已經對 if 進行了一些現代化改造以使用塊語法,恕我直言,這更容易掌握。

關於腳本語法的文件:https ://www.rsyslog.com/doc/v8-stable/rainerscript/index.html

引用自:https://unix.stackexchange.com/questions/500926