| 

.NET C# Java Javascript Exception

2
Die Access Logs meines Apachen sehen wie folgt aus:

meinedomain.de 89.166.255.118 2011-02-24 10:20:55 489 838


Die letzten beiden Werte sind die I/Os des Logio Moduls, diese möchte ich tagesweise über ein Shellskript auswerten.

Da ich noch ein Newbie auf der Shell bin, frage ich mich, mit welcher Syntax ich diese Werte addieren und tagesweise summieren kann?

Vielen Dank für Eure Hinweise!
24.02.2011
doublem 683 1 1 9
doublem 683 1 1 9
1 Antwort
2
Also ich nehme mal an, dass Du unter Linux arbeitest, dann solltest Du ein Programm names awk verwenden können.

Um Dein Beispiel aufzugreifen, kannst Du die Gesamtsumme der 5. und 6. Spalte aller Einträge mit Hilfe von awk folgendermaßen berechnen und ausgeben:

$ awk '{ s1+=$5; s2+=$6 } END { print s1, s2 }' < logfile.log

Dein Eingabeformat interpretiert awk in Spalten, wobei $1 die erste Spalte und $6 die 6. und letzte Spalte ist. Das kleine awk-Skript verwendet nun im ersten Block die Variablen s1 und s1 und addiert jeweils den Wert aus den angegebenen Spalten. Im zweiten Block (der mit END beginnt) wird dann am Ende der Wert (also die Endsumme) von s1 und s2 zweispaltig ausgegeben.

Nehmen wir also folgenden Inhalt für's Logfile an:
meinedomain.de 123.123.123.123 2011-02-24 10:10:10 100 200
meinedomain.de 123.123.123.123 2011-02-24 10:10:10 100 200
meinedomain.de 123.123.123.123 2011-02-24 10:10:10 100 200

Die Ausgabe wäre dann:
300 600

Wenn Du das nun z.B. regelmäßig per cron-Job laufen lassen möchtest, könntest Du diese Summen wiederum per Umleitung der Ausgabe inkl. Zeitstempel in eine Datei ausgeben:

$ awk '{ s1+=$5; s2+=$6 } END { print "'"$(date)"'", s1, s2 }' < logfile.log >> summen.log

Wichtig ist hierbei die Umleitung mit zwei '>>', da die Datei summen.log ansonsten bei jedem Skriptlauf überschrieben würde. So wird die Ausgabe an die Datei angehängt.
25.02.2011
Torsten Weber 691 1 8
Perfekt. Herzlichen Dank!
doublem 26.02.2011

Stelle deine Mysql-Frage jetzt!