[Postfixbuch-users] [OT] Filtern von IP-Adressen aus Logdateien
Christian Boltz
postfixbuch at cboltz.de
Fr Okt 10 21:59:09 CEST 2008
Hallo Sebastian, hallo Leute,
Am Freitag, 10. Oktober 2008 schrieb Sebastian Deiszner:
> ich bin jetzt endlich fündig geworden - ausfiltern von allen
> Mailadressen welche ein reject erzeugt haben.
>
> die folgende Zeile erzeugt aber:
>
> cat /var/log/mail.log | grep reject | grep deiszner.eu |
An dieser Stelle bekommst Du erstmal einen useless use of cat-Award -
grep kann selbst in Dateien lesen.
Außerdem ist ein useless use of grep-Award fällig - mehrere grep
hintereinander lassen sich üblicherweise durch Verkettung der
Suchbegriffe (grep "reject.*deiszner.eu") zusammenfassen.
So, bevor Du vor lauter Medaillen nicht mehr laufen kannst, kommen wir
zum eigentlichen Problem ;-)
> grep -Eo [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+ /var/log/mail.log
Ähm, Du hast die RegEx wirklich _ohne_ Anführungszeichen im Script
stehen? Dann schluckt die Bash die Backslashes und grep sieht nur noch
den Punkt (aka "irgendein Zeichen").
Und was mir gerade noch auffällt: Den letzten grep fütterst Du via Pipe
aus den vorangegangenen grep-Aufrufen und außerdem noch via Parameter
direkt aus /var/log/mail.
Gerade getestet: In einem solchen Fall wird _nur_ die angegebene Datei
ausgewertet, aber nicht die Daten aus der Pipe.
Setze Anführungszeichen (am Besten einfache, also '...') um die RegEx
und Dein Problem ist gelöst. Und bei der Gelegenheit kannst Du gleich
die ersten zwei grep-Aufrufe zu einem zusammenfassen.
Gruß
Christian Boltz
--
Wir sind vom LinuxTag e.V., Widerstand ist zwecklos.
Sie werden assimiliert.
[Henning Heinold - LinuxTag fortune]
Mehr Informationen über die Mailingliste Postfixbuch-users