Как фильтровать сообщения cron в syslog-ng

У меня небольшая проблема. Я не знаю, как фильтровать задания cron в syslog-ng. Это спам мой журнал.

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. Поскольку вы не включили полную конфигурацию системного журнала, я не уверен, что строка ниже будет идеально соответствовать, но вот пример того, как выбрать все строки cron, кроме тех, которые соответствуют вашему фильтру:

filter f_cron { facility(cron) and not filter(test); };
Другие вопросы по тегам