Como você pode filtrar o mail.info do syslog?

4

Como faço para filtrar o mail.info do / var / log / syslog (rsyslog.conf / Debian) enquanto mantém mensagens maiores ou iguais ao mail.warn?

Eu tentei praticamente todas as variações diferentes de adição e inclusão de combinações diferentes de mail, mail.info, mail.!info, mail.*, mail.warn, mail.!warn , mas aparentemente os docs são mais espertos do que eu.

Atualmente estou nisso, mas, infelizmente, ela está no meio:

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

Editar: estou tendo muita dificuldade em entender o delimitador de ponto-e-vírgula e como ele "restringe" as entradas anteriores.

    
por Jeff 11.07.2013 / 02:49

2 respostas

4

Na página man rsyslog.conf :

Rsyslogd has a syntax extension to the original BSD source, that makes its use more intuitively. You may precede every priority with an equals sign (=) to specify only this single priority and not any of the above. You may also (both is valid, too) precede the priority with an exclamation mark (!) to ignore all that priorities, either exact this one or this and any higher priority. If you use both extensions than the exclamation mark must occur before the equals sign, just use it intuitively.

Portanto, mail.!info significa que você está ignorando info priority e qualquer prioridade mais alta. Tente isto:

*.*;auth,authpriv.none;mail.warn,mail.!=info -/var/log/syslog
    
por 11.07.2013 / 04:12
2

Eu encontrei algumas outras variações para a resposta do quanta que também parecem funcionar. Eu tenho uma ideia de por que eles funcionam, mas eu não estou confiante o suficiente com os delímetros e operadores do rsyslog.conf para poder dizer com certeza. Espero que eles ajudem alguém.

Um.

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

Dois.

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

Qualquer comentário sobre alguém que conheça melhor seria bem-vindo.

    
por 11.07.2013 / 11:43