Schrift
[thread]12906[/thread]

RegExp für Logfileauswertung

Tags: Ähnliche Threads

Leser: 1


<< >> 8 Einträge, 1 Seite
digidax
 2008-12-14 05:16
#117219 #117219
User since
2008-12-14
3 Artikel
BenutzerIn
[default_avatar]
Hallo,
da ich bisher nur mit PHP gearbeitet habe jedoch nun ein Perlscript zur
Logfileauswertung ändern muss, möchte ich um Eure Hilfe bitten bezüglich
RegExp Ausdrücke.

Die zu untersuchenden Logfile Einträge sehen so aus:


Code: (dl )
1
2
3
4
5
6
7
8
Dec 10 18:08:26 181 postfix/cleanup[13833]: D6ADC9E1902: reject: body 
src='http://server1.streamsend.com/streamsend/view.php?cd=41912&ld=22&ud=f...><br><br><a
class='unsubscribe'
href='http://server1.streamsend.com/streamsend/unsubscr from
mailengine2.streamsend.com[72.19.251.189];
from=<streamsendboun...@mailengine2.streamsend.com> to=<s...@foo.de>
proto=ESMTP helo=<mailengine2.streamsend.com>: 5.7.1
Body-Spamschutzregel 400


Mein Ausdruck:
Code (perl): (dl )
elsif($text =~ /Spamschutzregel /o) {event($time, 'rej_policydw');} 



Es soll also nach dem Auftreten des Stringes >Spamschutzregel< gesucht
werden, egal ob das steht "Body-Spamschutzregel 400" oder
"Head-Spamschutzregel 123"


----------------------------------


Code: (dl )
1
2
3
4
Dec 12 08:38:06 181 postgrey[32728]: action=greylist, reason=early-retry 
(1s missing), client_name=rs2.netinitiative.co.uK,
client_address=89.234.6.17, sender=newslet...@beatsdigital.com,
recipient=i...@celebrate.de


Mein Ausdruck:
Code (perl): (dl )
1
2
elsif($text =~ /action=greylist, reason=early-retry /o) 
{event($time,'rej_greyblocked');} 



Es soll also nach dem Auftreten des Stringes >action=greylist,
reason=early-retry< gesucht werden.


--------------------------------------


Leider funktionieren beider Regeln nicht. Die Zeichenfolge "/o" am Ende
des Ausdrucks steht auch im Programm bei anderen RegExp's, welche
funktionieren. Wahrscheinlich hat das es was mit dem Programm an sich zu tun.


Für Hilfe wäre ich sehr dankbar.


vlg
Frank


edit pq: code-tags hinzugefügt
pq
 2008-12-14 12:40
#117223 #117223
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Was hat das mit Webprogrammierung/CGI zu tun? Ist doch wohl eher Stringverarbeitung/Regex.
Ich verschieb das mal nach "Allgemeines zu Perl"
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
digidax
 2008-12-14 16:01
#117227 #117227
User since
2008-12-14
3 Artikel
BenutzerIn
[default_avatar]
oh, sorry, dachte weil die Datei im Verzeichnis cgi-bin liegt und die Grafik per rrd im Web verfügbar macht.
pq
 2008-12-14 16:38
#117229 #117229
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
digidax+2008-12-14 15:01:20--
oh, sorry, dachte weil die Datei im Verzeichnis cgi-bin liegt und die Grafik per rrd im Web verfügbar macht.

Naja, aber das Problem an sich ist ja kein CGI-Problem. Wenn es nebenbei ne Datenbank benutzen
würde, würdest du ja auch nicht im Datenbankforum fragen =)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2008-12-14 16:39
#117231 #117231
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
das /o bei der Regex ist übrigens hier vollkommen überflüssig, weil es wenn überhaupt nur was
bringt, wenn eine Variable in der Regex vorkommt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2008-12-14 16:43
#117232 #117232
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Ich gab mal code-Tags zu deinem Post hinzugefügt.

Versuch mal, ein minimales Programm zu basteln, das das Problem zeigt.
Deine Regex sollte auf den Text matchen, also ist vermutlich an anderer Stelle ein Fehler.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
murphy
 2008-12-14 16:46
#117233 #117233
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
@digidax: Deine regulaeren Ausdruecke sehen eigentlich korrekt aus. Und das Flag o sollte in diesem Fall keinen Unterschied machen, da keine Variablen in die regulaeren Ausdruecke interpoliert werden.

Vielleicht liegt das Problem wo anders...
When C++ is your hammer, every problem looks like your thumb.
digidax
 2008-12-16 09:37
#117272 #117272
User since
2008-12-14
3 Artikel
BenutzerIn
[default_avatar]
Danke erstmal für Eure Hilfe, ich habe hier: RegEx Test mal mit meinen Ausdrücken gespielt und die waren positiv. Ich werde mal das Script weiter durchforsten und mittels
Code: (dl )
# logger
versuchen, es zu debuggen. Da der Code sehr verschachtelt ist, kann es durchaus sein, dass diese RegEx Abfrage gar nicht stattfinden kann.

vlg
Frank
<< >> 8 Einträge, 1 Seite



View all threads created 2008-12-14 05:16.