Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Script zur Logauswertung

Frage Entwicklung

Mitglied: der.Fred

der.Fred (Level 1) - Jetzt verbinden

16.07.2010 um 13:35 Uhr, 2189 Aufrufe, 3 Kommentare

Hallo, liebe Profi-Scripter
Ich muß eine Logdatei auswerten und schaffe es einfach nicht, die benötigte Auswertung zu erstellen, obwohl eigentlich alle Infos vorhanden sind. Hoffentlich kann mir jemand helfen...

Das Ganze sollte unter Linux als Script laufen - entweder Bash, AWK oder Perl. Ich versuche mich jetzt schon den zweiten Tag daran - erfolglos!
Besten Dank schon mal immer im Voraus!
Gruß
Fred

Folgendes Problem:
ich habe eine Datei, welche in etwa die folgende Struktur hat:

01.
XXX uninteressante Zeile 
02.
XXX connected to IP xxx.xxx.xxx.xxx 
03.
XXX uninteressante Zeile 
04.
XXX RCPT TO  Empfaenger@adresse.de 
05.
XXX uninteressante Zeile 
06.
XXX uninteressante Zeile 
07.
XXX MAIL FROM  Empfaenger@adresse.de 
08.
XXX uninteressante Zeile 
09.
XXX uninteressante Zeile 
10.
XXX RCPT TO  Empfaenger@adresse.de 
11.
XXX uninteressante Zeile 
12.
XXX MAIL FROM  Empfaenger@adresse.de 
13.
XXX uninteressante Zeile 
14.
XXX Mail rejected: reason 
15.
XXX uninteressante Zeile 
16.
XXX RCPT TO  Empfaenger@adresse.de 
17.
XXX uninteressante Zeile 
18.
XXX MAIL FROM  Empfaenger@adresse.de 
19.
XXX RCPT TO  Empfaenger@adresse.de 
20.
XXX uninteressante Zeile 
21.
XXX MAIL FROM  Empfaenger@adresse.de 
22.
XXX Mail rejected: reason 
23.
XXX connected to IP xxx.xxx.xxx.xxx 
24.
XXX uninteressante Zeile 
25.
XXX RCPT TO  Empfaenger@adresse.de 
26.
XXX MAIL FROM  Empfaenger@adresse.de 
27.
XXX Mail rejected: reason
Die Datei ist zeitchronologisch aufgebaut. Wenn beispielsweise kein Eintrag "rejected" kommt, bedeuted das, dass die Mail, deren Parameter darüber stehen, zugestellt wurde.
Wenn keine IP Adresse steht, gilt die letzte gelesene, da keine neue Verbindung aufgebaut wurde. Ich möchte jetzt alle Mails, welche abgewiesen wurden in einer Tabelle.
Also in der folgenden Form etwa, wobei in diesem Fall hier die Tabelle nur 3 Einträge mit 2 unterschiedl. IPs hätte.

01.
IP-Adresse      To      From    Reason 
02.
--------------------------------------
Mitglied: LotPings
16.07.2010 um 23:09 Uhr
Hallo Fred,

ohne das genaue Format des Zeitstempels wird man dir kaum helfen können,
XXX ist nicht sehr hilfreich.

Eine Reduzierung auf relevante Zeilen könntest du schon einmal hiermit erreichen:
grep '\(connected to IP\)\|\(RCPT.TO\)\|\(MAIL FROM\)\|\(Mail rejected:\)' <test.log
Gruß
LotPings
Bitte warten ..
Mitglied: der.Fred
18.07.2010 um 22:27 Uhr
Hallo LotPings,

ich hab mich vielleicht ein bissel dumm ausgedrückt. Eine Zeile im Log sieht in Wirklichkeit natürlich wesentlich komplizierter aus. Den gewünschten Inhalt aus der relevanten Zeile zu extrahieren, krieg ich bestimmt auf die Reihe. Mein Problem ist vielmehr, eine Routine zu schreiben, welche überhaupt erstmal alle die zu einem für mich relevanten Datensatz (als nur die "rejected" Mails mit Absender, IP vom MTA, Empfänger, Grund) zusammengehörigen Zeilen ermittelt.

Also ungefähr so:
1.) das Log nach dem ersten Eintrag "connected to IP" suchen.
2.) diese Zeile merken
3.) die nächste Zeile, die ein RCPT TO enthält, merken
4.) die nächste Zeile, die ein MAIL FROM enthält, merken
5.) wenn jetzt als nächstes die Zeile "Mail rejected" enthält, hab ich den kompletten Datensatz, ansonsten die Zeilen RCPT TO und MAIL FROM wieder vergessen
6.) gucken, ob als nächstes ein connected to IP kommt, wenn ja, die erste Zeile (also 1.) auch vergessen, wenn nicht, beginnt eine neue Mail an den selbern MTA, also wenn es eine Zeile mit RCPT TO ist, merken...

...und so weiter...

Ich weiss, es ist nicht so einfach zu verstehen, aber vielleicht ist es jetzt etwas besser verständlich? Der Zeitstempel selbst, hat für mich keine Bedeutung. Den kann man auch leider nicht sinnvoll nutzen, um zusammengehörige Einträge zu identifizieren, da pro Sekunde hin und wieder mehrere Mails versendet werden. Das "XXX" steht auch nicht nur für den Zeitstempel, denn da steht auch noch der Prozess und die PID neben der Zeit mit drin.
Bitte warten ..
Mitglied: LotPings
19.07.2010 um 08:15 Uhr
Hallo Fred,

ich habe dich auch schon Anfangs verstanden.
Um aber geeignete RegExp zu entwickeln ist schon der genaue Aufbau der Zeilen notwendig, nicht eine idealisierte Version.
Wenn da vertrauliche Informationen drin sind, neutralisiere sie eben.
Besteht der reason bei rejected aus mehreren Worten?

Im Prinizp würde ich die Adressen aus den gefundenen Zeilen in eine Variable setzen und erst mit der rejected Zeile ausgeben.

Funktioniert der grep-Befehl von oben denn?

Gruß
LotPings

PS: Vom Scripten verstehe ich einiges, bei der bash (einschl. sed, awk) bin ich aber noch Anfänger
Bitte warten ..
Ähnliche Inhalte
Voice over IP
SIP Log Visualiser für VoIP Server Logauswertungen
Frage von istike2Voice over IP

Hallo, kennt jemand ein Tool (ggfs. auch Online) wo wir die Logs (kein RTP sondern reine Verbindungsdaten) , die ...

Windows Server
Powershell Script in Script ausführen
Frage von diematrix125Windows Server2 Kommentare

Hallo! Ich habe hier momentan zwei verschiedene Skripte: 1. Skript zum Erstellen von Usern 2. Skript zum Erstellen der ...

Linux
Shell Script, Script ausführen in einem Zeitfenster
Frage von webstorLinux2 Kommentare

Hi, ich bin wieder mal lästig. ;-) ich habe ein Script das in einem Zeitraumen von als Bsp in ...

Windows Server
Script zur Programmüberwachung
gelöst Frage von max1699Windows Server2 Kommentare

Hallo! Ich bin auf der Suche nach einem Script bzw. Tool mit dem ich auf meinem Server ein Programm ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...