를 기반으로 특정 메시지를 읽지 못하도록 부정을 사용하고 싶습니다 $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
그것은 포함된다이전 기사
답변1
표현식을 올바르게 그룹화해야 합니다. 스크립트에서는 "!" 대신 "not"을 사용해야 합니다. 또한 부정할 표현식 앞에 not이 앞에 와야 합니다. 따라서 올바른 구문은 다음과 같습니다.
if not ($rawmsg contains '(root) CMD ') then {
?wcc-logs
stop
}
설명을 위해 괄호를 사용하고 있습니다. IMHO가 마스터하기 더 쉬운 블록 구문을 사용하도록 if를 현대화했습니다.
스크립트 구문에 대한 문서:https://www.rsyslog.com/doc/v8-stable/rainerscript/index.html