2009-05-01 6 views
2

Ich bin auf der Suche nach rückwirkenden Parsing der Logs und Zählung der Anzahl der/foo/* Anfragen, die aufgetreten sind, um einen Baseline-Benchmark für ein neues Feature, das wir drängen, zu haben. Ein einfaches Befehlszeilenskript wäre in Ordnung - mit einem zusätzlichen Bonus, um einen Datumsbereich angeben zu können.Was ist der einfachste Weg, die Anzahl der Anfragen an/foo/zu zählen, die Apache geliefert hat?

Einige Verwendung von Grep, vielleicht?

+1

Linie 3: Fehler: ‚Einfach‘ und ‚Lage, einen Datumsbereich angeben‘: Inkompatible Typen – chaos

Antwort

2
egrep -c '\] "[A-Z]+ /foo/' access_log 
1

Das Hinzufügen der Bedingung "kann einen Datumsbereich angeben" macht es ein wenig schwieriger. Am einfachsten ist es wahrscheinlich, ein Python- oder Ruby-Programm zu schreiben. Ansonsten, mit Datum (1) mit -f, um das Parsing-Format einzurichten, -j, um es zu sagen, die verdammte Uhr in Ruhe zu lassen, und -r, um es Sekunden drucken zu lassen, da die Epoche Sie dorthin bringen würde.

1
fgrep " /foo/" access_log | wc -l 

ein grob formatiert Zugriffe pro Tag zu erhalten:

fgrep " /foo/" access_log | cut -d'[' -f2 | cut -d: -f1 | uniq -c