• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] filtern mit regulären Ausdrücken

K4m1K4tz3

Advanced Hacker
Hi,

ich weiß nicht wo es am besten hinpasst, dachte aber hier kennt man sich damit noch am besten aus.

Ich habe folgendes Problem: ich möchte meine logs mit logchick filtern und zu mir schicken. Da jedoch regelmäßig irgendwelche w00tw00t.at.ISC.SANS.DFind scans stattfinden, möchte ich mir eine Regel definieren, die diese Zeilen herausfiltert und mir eben nicht schickt.

Eine Zeile sieht in etwa so aus:
Code:
[Tue Feb 15 16:47:26 2011] [error] [client xxx.xxx.xxx.xxx] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
Ich scheitere an dem Übergang zwischen [client xxx.xxx.xxx.xxx] (x sind natürlich Zahlen) und client sent ...
Nutze ich \[client [.[:digit:]\] funktioniert es. füge ich ein client hinzu, dann funktioniert es nicht mehr: \[client [.[:digit:]\] client

(getestet mit egrep)
 
Hallo K4m1K4tz3,
K4m1K4tz3 schrieb:
Ich habe folgendes Problem: ich möchte meine logs mit logchick filtern und zu mir schicken.
  • Was ist logchik oder meinst Du /etc/logcheck
    Wo liegen die Logdateien die Du filtern möchtest?
    Wie heißen die Dateien?
    Wonach soll gesucht werden und wonach explizit nicht?
K4m1K4tz3 schrieb:
Da jedoch regelmäßig irgendwelche w00tw00t.at.ISC.SANS.DFind scans stattfinden, möchte ich mir eine Regel definieren, die diese Zeilen herausfiltert und mir eben nicht schickt.
Das macht grep mit dem Parameter -v ,dieser entfernt Zeilen in denen der angegebene String vorkommt. Siehe → man grep in der Konsole.
Code:
grep -v "w00tw00t.at.ISC.SANS.DFind scans" /Pfad/zur/Logdatei/Logdatei.log
Schickt...dann nach /dev/null senden lassen.
K4m1K4tz3 schrieb:
Ich scheitere an dem Übergang zwischen [client xxx.xxx.xxx.xxx] (x sind natürlich Zahlen) und client sent ...
Nutze ich \[client [.[:digit:]\] funktioniert es. füge ich ein client hinzu, dann funktioniert es nicht mehr: \[client [.[:digit:]\] client
Wenn Du nur den String w00tw00t.at.ISC.SANS.DFind scans entfernen willst, aber den Rest der Zeile behalten möchtest wird es etwas mehr Arbeit, aber kein Hexenwerk.
Code:
grep SUCHSTRING|tr -"w00tw00t.at.ISC.SANS.DFind scans" /Pfad/zur/Logdatei/Logdatei.log"
oder ähnlich.
lieben Gruß aus Hessen
 
OP
K

K4m1K4tz3

Advanced Hacker
Das ganze hat sich schon erledigt. Natürlich meinte ich logcheck.

Mein Problem bestand darin einen Filter zu bauen der die richtigen Zeilen findet. Ich habe aber vergessen anzugeben, dass mehrere dieser Zeichen in einem String vorkommen können. Daher das Sternchen, was vorher fehlte.

Das ganze kann man mit egrep -f filterdatei logdatei testen. Dabei sollte egrep nur die Zeilen ausspucken, welche man herausgefiltert haben möchte.
 
Oben