Seite 1 von 1
Server Log-Dateien vergleichen
Verfasst: 18.08.2009, 12:00
von Michael1967
Hallo,
ich möchte analysieren - ob jemand gestern und heute mit der selben IP-Adresse auf meiner Seite war.
Wie kann ich die IP-Adressen von 2 Server-Log-Dateien (Beispiel Datei von heute und gestern) miteinander vergleichen und bei Gleichheit ausgeben lassen?
WinMerge usw. habe ich schon probiert - geht damit irgendwie nicht!
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 18.08.2009, 14:47
von chris21
Auf die Schnelle als bash Kommando:
Code: Alles auswählen
comm -12 <(sort <(cut -d- -f1 logdatei1) | uniq) <(sort <(cut -d- -f1 logdatei2)|uniq)
Bei mir sehen log-Zeilen so aus:
111.111.111.111 - - "GET /file" 200 User Agent etc.
daher habe ich eben bei cut das "-" als Trennzeichen gewählt...
Könnte sein, dass da noch kleine Gedankenfehler drin sind. Mit einfachen Testlogs funzte das.
Verfasst: 18.08.2009, 15:32
von Michael1967
Hmm, keine Ahnung was ein Bash-Kommando ist. Muss man da einen eigenen Server haben? Habe ich leider nicht. Gibt es da keine Software oder ein Tool?
Verfasst: 18.08.2009, 15:46
von proit
Willst du das dauerhaft machen oder nur einmalig, für einen einzigen Fall? Bei letzterem kannst du unter Windows beide Dateien aufmachen, Strg+F drücken im Editor deiner Wahl und dann die IP Eintragen.
Ansonsten müsste man natürlich noch den Webserver, das Logformat etc. kennen, um das parsen zu können, bzw. ein Programm oder ein Script wie chris es geschieben hat, vorzuschlagen. Für was das gut sein soll, ist mir allerdings nicht ersichtlich. Welche Intension steckt dahinter?
Re: Server Log-Dateien vergleichen
Verfasst: 18.08.2009, 15:50
von net(t)worker
Michael1967 hat geschrieben:ich möchte analysieren - ob jemand gestern und heute mit der selben IP-Adresse auf meiner Seite war.
du kannst zwar prüfen ob eine IP die gestern schon da war auch heute wieder da ist... aber ob es dieselbe person ist dürfte nur bei festen IPs klar sein... der normale User hat jeden Tag ne neue IP...
Verfasst: 18.08.2009, 15:57
von Michael1967
du kannst zwar prüfen ob eine IP die gestern schon da war auch heute wieder da ist... aber ob es dieselbe person ist dürfte nur bei festen IPs klar sein... der normale User hat jeden Tag ne neue IP...
Um das auf Dauer erkennen zu können reicht ja eigentlich der Bereich aus dem die IP-kommt.
Leider steht in den Log-Files nicht nur die IP, sondern auch noch andere Dinge. Deswegen ist ein Vergleich für mich unmöglich. Da müsste man ja erstmal die IPs rausfiltern bevor man diese analysieren kann.
Werd dann wohl die IPs in der Datenbank speichern müssen und von dort aus vergleichen, gg
Verfasst: 18.08.2009, 18:32
von chris21
Hi Michael,
ähm, also einen Server brauchst Du für den Befehl oben nicht direkt - es reicht einfach ein Unix/Linux OS irgendwo...
Ganz sicher wirst Du aber unter Windows die gleichen/ähnliche Möglichkeiten haben...
Obiger Befehl von mir schnappt sich erst alle IP-Adressen, wirft den Rest raus, sortiert dann die IP-Adressen (jeweils intern in den einzelnen Logs von Tag1 und Tag2), um dann nur jene IP-Adressen auszugeben, die dann in beiden Logs auftauchen.
Falls das unter Windows nicht so einfach zu machen wie unter Unix/Linux/Mac, könnte man auch ein einfaches C-Skript schreiben, dass das unter Windows erledigt.
Verfasst: 18.08.2009, 18:59
von chris21
Hm,
ich habe mal eben einfach unter Windows cygwin installiert, wodurch Du eine Bash Shell unter Windows nutzen kannst.
Damit komme ich dann mit obigem Befehl auch unter Windows in Cygwin weiter.
Edith sagt:
Chris21 hat geschrieben:
Ganz sicher wirst Du aber unter Windows die gleichen/ähnliche Möglichkeiten haben...
Tja, da hatte ich Microsoft zuviel zugetraut

Möcht mal wissen, wie die armen Admins MS Server ohne vernünftige Shell administrieren - selbst die neue Power Shell scheint noch nicht mächtig genug.
Der Ausweg, über Cygwin nun die Linux Qualitäten und Helferlein unter Windows zu nutzen, funzt aber prächtig, habe das eben mit zwei Logfiles durchgezogen (jeweils über 200.000 Zeilen) und der obige Bash Befehl ist richtig schnell
Daher würde ich die Kombi aus Cygwin plus obigen Befehl empfehlen, bevor Du da ein eigenes Programm für schreibst (dafür ist die Aufgabe zu einfach).
Verfasst: 18.08.2009, 21:51
von Michael1967
Okay, vielen Dank!