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:
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:
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"
----------------------------------
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:
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