Rsyslog
如何根據否定語法否定某些消息
我想使用否定來阻止某些消息在基於
$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