regulärer Ausdruck für logcheck

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
serecords
Beiträge: 124
Registriert: 14.11.2012 21:53:37

regulärer Ausdruck für logcheck

Beitrag von serecords » 24.11.2013 17:07:38

Hallo,

folgende Zeile hab ich bei logcheck unter "ignore.d.server" an "kernel" angehängt.

Code: Alles auswählen

^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ kernel: (\\[.*?\\])(\\d+)(\\.)(\\d+).*? (announce)(\\[.*?\\])(:) (segfault) (at) (\\d+) (ip) (\\d+)((?:[a-z][a-z0-9_]*)) ((?:[a-z][a-z0-9_]*)) (\\d+)((?:[a-z][a-z0-9_]*)) (error) (\\d+) ((?:[a-z][a-z0-9_]*)) ((?:[a-z][a-z\\.\\d\\-]+)\\.(?:[a-z][a-z\\-]+))(?![\\w\\.])(\\[.*?\\])$
Dies soll diesen Eintrag maskieren:

Code: Alles auswählen

Nov 24 17:04:32 test-server kernel: [16697984.055966] announce[10959]: segfault at 4 ip 00000000f7722fc2 sp 00000000ffa27630 error 4 in ld-2.11.3.so[f7718000+1c000]
Aber das wird nicht gemacht. Kann mir jemand helfen den Ausruck zu korrigieren?

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: regulärer Ausdruck für logcheck

Beitrag von syssi » 24.11.2013 17:10:24

Erstmal: Du solltest die existierenden Dateien nicht editieren. Sie stammen aus Paketen und werden bei einem Update ueberschrieben. Die Dokumentation von logcheck empfielt, dass du lokale Ergaenzungen den Prefix "local-" gibst: local-kernel.

Und so wuerde ich die Regel formulieren.

Code: Alles auswählen

^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ kernel:( \[ *[[:digit:]]+\.[[:digit:]]+\])? announce\[[0-9]+\]: segfault at [0-9]+ ip [0-9a-f]+ sp [0-9a-f]+ error [0-9]+ in [^[:space:]]+$
Deine Loesung sieht extrem kompliziert aus und mich wundern die vielen Escapes (\), sowie die unnoetige Klammerung.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: regulärer Ausdruck für logcheck

Beitrag von Cae » 24.11.2013 17:24:29

Ich mag nur ungern deine RegEx von oben auseinander fuddeln, da werd' ich nur bekloppt dabei. Du kannst mit meiner (funktionierenden) Version

Code: Alles auswählen

^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ kernel: \[[0-9. ]+\] announce\[[0-9]+\]: segfault at 4 ip [0-9a-f]+ sp [0-9a-f]+ error 4 in ld-2\.[0-9.]+\.so\[[0-9a-f+]+\]$
vergleichen; dein erster Fehler duerfte schon mal das doppelte Escapen von [ zu \\[ sein, was auf ein literales \[ matchen wuerde.

Man kann noch ueberlegen ob die 4 bei Position und error eher statisch ist oder besser durch [0-9]+ oder [0-9a-f]+ ersetzt werden sollte. Ebenso, wie weit man das aktuelle shared object matcht, wie syssi es oben tut.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

serecords
Beiträge: 124
Registriert: 14.11.2012 21:53:37

Re: regulärer Ausdruck für logcheck

Beitrag von serecords » 24.11.2013 18:25:01

Danke euch beiden!

Ich werde es gleich mal versuchen.

EDIT: Danke, es funktionieren beide Vorschläge.

Antworten