Назад | Перейти на главную страницу

Как можно отфильтровать mail.info из системного журнала?

Как отфильтровать mail.info из / var / log / syslog (rsyslog.conf / Debian), сохраняя при этом сообщения больше или равные mail.warn?

Я пробовал практически все варианты добавления и добавления различных комбинаций mail, mail.info, mail.!info, mail.*, mail.warn, mail.!warn, но очевидно документы умнее меня.

Сейчас я занимаюсь этим, но, увы, она не подходит:

*.*;auth,authpriv.none;mail.warn,mail.!info -/var/log/syslog

Редактировать: Мне очень трудно понять разделитель точки с запятой и то, как он «ограничивает» предыдущие записи.

Из man rsyslog.conf страница:

Rsyslogd имеет расширение синтаксиса исходного исходного кода BSD, что делает его использование более интуитивно понятным. Вы можете ставить перед каждым приоритетом знак равенства (=), чтобы указать только этот единственный приоритет, а не что-либо из вышеперечисленного. Вы также можете (оба допустимы) перед приоритетом поставьте восклицательный знак (!), чтобы игнорировать все эти приоритеты, либо точно этот, либо этот и любой более высокий приоритет. Если вы используете оба расширения, а восклицательный знак должен стоять перед знаком равенства, просто используйте его интуитивно.

Так mail.!info означает, что вы игнорируете info приоритет и любой более высокий приоритет. Попробуй это:

*.*;auth,authpriv.none;mail.warn,mail.!=info -/var/log/syslog

Я нашел несколько других вариантов ответа квантов, которые, похоже, тоже работают. У меня есть представление о том, почему они работают, но я недостаточно уверен в разделителях и операторах rsyslog.conf, чтобы сказать наверняка. Надеюсь, они помогут кому-то другому.

Один.

*.*;\
    auth,authpriv.none;\
    mail.!info,mail.warn     -/var/log/syslog

Два.

*.*;\
    mail.none;\
    mail.error;\
    auth,authpriv.none       -/var/log/syslog

Любые комментарии по этому поводу от кого-то, кто знает лучше, будут приветствоваться.