Veröffentlicht 22. Februar 201213 j Hallo Vielleicht habe ich heute Kartoffeln im Kopf, aber wie kann ich aus mehreren access_2012_%monat%_%tag%_.log (alle in einem Verzeichnis) alle 404-Fehler rausfinden und daraus eine "Statistik" mit Anzahl des Auftretens (7x abc.pdf 5x def.gif) generieren? grep braucht man um nur die 404er zu bekommen, uniq um die dubletten zu eliminieren, aber dann? Ciao
22. Februar 201213 j Ääähm - wenn du die Dupletten eleminierst - wie willst du dann die Anzahl bekommen? Ich denke, du hast da einen Denkfehler in deiner Überlegung... Ich denke, was du benötigst ist wordcount (WC) unter Linux. Schau mal hier.
22. Februar 201213 j Hi, wie sollen denn Dubletten definiert sein? Ich meine eine Dublette ist ja, je nach Logformat, so gut wie unmöglich, denn wenn du Datum, Datei etc mitlogst, müsste der Eintrag ja quasi auf die Nanosekunde identisch sein, was ich für ausgeschlossen halte. EDIT: Ahso, es geht nur um die eigentlichen Dateien. Dann schließe ich mich Crash an.
22. Februar 201213 j Ungetestet, aber das Prinzip sollte klar sein: grep " 404 " access_2012_*.log | awk '{print $13}' | uniq -c
22. Februar 201213 j Äh, ich habe heute wirklich Kartoffeln im Kopf, natürlich geht "keine Dubletten" und "zählen" nicht gut zusammen. > grep " 404 " access_2012_*.log | awk '{print $13}' | uniq -c Da wird nicht aufsummiert, d.h. "abc.pdf" erscheint in Logfile1 5x, in Logfile2 6x und daher bei deinem Befehl zweimal (einmal 5, dann 6)
22. Februar 201213 j Hi, du musst erst noch ein Sort einfügen: grep " 404 " access_2012_*.log | awk '{print $13}' | sort | uniq -c Und um die Reihenfolge nach Anzahl des Auftretens zu bekommen: grep " 404 " access_2012_*.log | awk '{print $13}' | sort | uniq -c |sort -nr Bearbeitet 22. Februar 201213 j von carstenj
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.