ubuntuusers.de

Logfile durchsuchen

Status: Ungelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

ThisIsChris

Anmeldungsdatum:
14. Dezember 2015

Beiträge: Zähle...

Hallo zusammen!

Bin noch neu hier und hoffe das richtige Forum erwischt zu haben.

Ich versuche, aus einem Logfile gescheiterte Verbindungsaufbauten (DSL) zu filtern. Sagen wir, der Verbindungsaufbau wird durch einen String "connect_me" initiiert - innerhalb der darauffolgenden 20 Sekunden suche ich jetzt nach einem String der einen erfolgreichen Verbindungsaufbau signalisiert. Sagen wir "dsl_connected". Dazwischen können 1 bis n Zeilen liegen.

Die Angabe des Datums und der Zeit ist im Format mmm dd HH:MM:ss angegeben, also bspw. Dec 14 16:52:02.

Nochmal kurz zum Verstehen: Wenn "connect_me" gefunden wird, schaue innerhalb der darauf folgenden 20 Sekunden nach "dsl_connected". Sollte das Ergebnis FALSE sein, dann schreibe die Zeit des "connect me" in ein File dsl.txt.

Ich hoffe das war verständlich.

Vielen Dank im Voraus.

Grüße

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Hi Chris,

zuerst mal herzlich willkommen hier auf dem Forum !

Das was Du da beschreibst, geht nicht so 1-2-3 mit Bordmitteln, sondern dafür musst Du die Logik selber programmieren.
Ich wäre in dem Fall dazu zu faul, da würde ich einfach grep -A nehmen, also mit ein paar Zeilen Kontext (→ siehe man grep).

Die Alternative wäre jede höhere Programmiersprache Deiner Wahl, oder auch einfach awk - eben irgend etwas, das nicht nur Zeilen finden kann, sondern auch die Zeitdifferenz berechnet.
(Falls Du konkretere Hilfe brauchst, müsstest Du auch bitte ein konkreteres Testmuster mitliefern ... 😉 )

LG,

track

anrub

Avatar von anrub

Anmeldungsdatum:
4. Januar 2013

Beiträge: 336

Wahrscheinlich würdest du sonst nicht fragen - aber gibt es denn kein Logeintrag wenn der Verbindungsaufbau nicht geklappt hat?

Normalerweise sollte gerade ein Fehler sowieso geloggt werden.. Vielleicht kannst du ein beispielhaftes Logfile mal posten.

Grüße anrub

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17622

Wohnort: Berlin

ThisIsChris schrieb:

Hallo zusammen!

Bin noch neu hier und hoffe das richtige Forum erwischt zu haben.

Ich versuche, aus einem Logfile gescheiterte Verbindungsaufbauten (DSL) zu filtern. Sagen wir, der Verbindungsaufbau wird durch einen String "connect_me" initiiert - innerhalb der darauffolgenden 20 Sekunden suche ich jetzt nach einem String der einen erfolgreichen Verbindungsaufbau signalisiert. Sagen wir "dsl_connected". Dazwischen können 1 bis n Zeilen liegen.

Die Angabe des Datums und der Zeit ist im Format mmm dd HH:MM:ss angegeben, also bspw. Dec 14 16:52:02.

Fängt also jede Logzeile so an?

Suchst Du live nach dem Connect (innerh. der d. 20s) oder Wochen später in einer Datei, in der das connected auf jeden Fall drinsteht, wenn es einen Connect gab?

Was ist n - ist das irgendwie bekannt?

Nochmal kurz zum Verstehen: Wenn "connect_me" gefunden wird, schaue innerhalb der darauf folgenden 20 Sekunden nach "dsl_connected". Sollte das Ergebnis FALSE sein, dann schreibe die Zeit des "connect me" in ein File dsl.txt.

Ich hoffe das war verständlich.

Nein. Schauen wir in den folgenden 20 Sekunden oder in den folgenden Zeilen? Ich denke doch in den Zeilen.

Wenn Du zum Testen eh eine Testdatei brauchst kannst Du sie auch online posten, damit nicht jeder seine eigene erzeugen muss.

1
2
3
4
5
Dec 14 16:52:02 connect_me
Dec 14 16:52:12 dsl_connected
Dec 14 17:31:02 connect_me
Dec 14 17:32:02 connect_me
Dec 14 17:33:02 dsl_connected

Hier wäre also ein ordentlicher Aufbau, dann ein connect-me ohne Quittierung, einer mit zu später Quittierung. Dazwischen Datenmüll?

Antworten |