如何在 syslog-ng 中过滤 cron 消息

如何在 syslog-ng 中过滤 cron 消息

我遇到了一个小问题。我不知道如何在 syslog-ng 中过滤 cron 任务。它正在向我的日志发送垃圾邮件。

Jun 05 16:09:01  CRON:  pam_unix(cron:session): session opened for user root by (uid=0) 
Jun 05 16:09:01  /USR/SBIN/CRON:  (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime)) 
Jun 05 16:09:01  CRON:  pam_unix(cron:session): session closed for user root 

我尝试使用过滤器,但是没有作用。

  filter test { match("[ -x /usr/lib/php5/maxlifetime ]"); };
  log { source(src); filter(test); destination{d_null}; flags(final); };

答案1

您误解了过滤器的应用方式。虽然此过滤器和日志行完全按照您的要求执行,但它们不会影响您在配置中其他地方使用的其他日志命令。

您不应将此过滤器定向到 /dev/null,而应使用它来排除常规 cron 日志的过滤器语句中与过滤器匹配的消息。由于您未包含完整的 syslog 配置,因此我无法确定下面的行是否完全匹配,但这里有一个示例,说明如何选择除与您的过滤器匹配的行之外的所有 cron 行:

filter f_cron { facility(cron) and not filter(test); };

相关内容