Maskiertes Suchen, Ersetzen und Rechnen in access.log vor weitere Bearbeitung

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von JoeDormann, 24.11.2011.

  1. #1 JoeDormann, 24.11.2011
    JoeDormann

    JoeDormann Grünschnabel

    Dabei seit:
    19.11.2011
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo,
    vielen Dank nochmal für die konstruktive Hilfe in meiner letzten Anfrage.

    Aktuell zu meinem kleinen Auswertungsprojekt habe ich eine weitere Aufgabe.
    Auszug aus meiner vorbereiteten access.log
    Code:
    03/Nov/2011:17:59:06;EURUSD;5-2-18-11;-6.72;-6.63;-0.74;300;300;FinFxTradingOy;2.3;9;;-0;435412;582667;27
    03/Nov/2011:18:00:01;EURUSD;5-0-10-6;-6.72;-6.63;-0.74;300;300;FinFxTradingOy;2.3;9;;-0;1650694;503527;37
    03/Nov/2011:18:00:04;EURUSDm;25-18-28-23;-7.30;-46.22;-5.14;300;300;GoMarketsPtyLtd;2.3;9;;-0;384;404;0
    03/Nov/2011:18:10:30;GBPUSDm;28-28-28-28;-7.30;-46.22;-5.14;300;300;GoMarketsPtyLtd;2.3;9;;-0;259;404;0
    03/Nov/2011:18:22:15;EURUSD;16-16-16-16;93.78;88.15;9.79;40;50;Alpari(UK)Ltd.;2.3;9;1945750;2435912;1211
    03/Nov/2011:18:22:44;AUDUSD;28-28-28-28;93.78;88.17;9.80;40;50;Alpari(UK)Ltd.;2.3;9;1189292;1543273;694
    Die Daten kommen bis zu einer Minute verfrüht, da weltweit zugegriffen wird, und die localtime des Users nicht immer exakt paßt.
    Die Zeilen sollen vorerst dahingehend geändert werden, das Die Uhrzeit im Bereich ??:?9:00 bis ??:?8:59 in ??:?0:00 geändert wird.
    Bsp.:
    03/Nov/2011:14:29:00 wird zu 03/Nov/2011:14:30:00 gehört zum 30Minutenbereich der gleichen Stunde des aktuellen Datums
    03/Nov/2011:14:48:15 wird zu 03/Nov/2011:14:40:00 gehört zum 40Minutenbereich der gleichen Stunde des aktuellen Datums
    03/Nov/2011:14:59:44 wird zu 03/Nov/2011:15:00:00 gehört zum 00Minutenbereich der nächsten Stunde des aktuellen Datums
    03/Nov/2011:23:59:00 wird zu 04/Nov/2011:00:00:00 gehört zum 30Minutenbereich de nächsten Stunde des nächsten Tages

    Dabei stellt sich noch das Problem, das sich auch das Datum ggf. ändert.

    Ich sehe da immo keinen Ansatzpunkt, wie man das am geschicktesten in einer bash anstellen könnte.
    Möglicherweise kann man evtl. das Datum in einen gültigen Timestamp umrechen, also in eine long integer Zahl und dann die Zahl anpassen und ins Datumsformat zurücktransformieren?
    Dann natürlich den alten Wert durch den Neuen ersetzen und in Datei speichern.

    Später muß ich dann noch mal Timestamp,Währungspaar und Provider gruppieren, bevor ich die Datenreihen( das 5-2-18-11 bedeutet last-min-max-durchschn. Value) zerlegen und die Durchschnitte der Bereiche last min max und Durchschn. ermitteln kann , welche in einer 10-Minuten-Grafik ausgegeben, werden sollen.

    Zunächst habe ich keinen Schimmer, wie ein vielversprechender Ansatz in einer Bash oder anderen Shell, aussehen könnte.
    Ich hoffe, das das als Shellscript machbar ist.

    Gerne werde ich hier das Script auf Basis Eurer Tips bis zum Schluß durchziehen.

    Gruß Joe

    PS: Ich bekomm hier keinen Smilie reingezogen oder platziert. Komisch
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Remidemi, 25.11.2011
    Remidemi

    Remidemi Routinier

    Dabei seit:
    17.03.2008
    Beiträge:
    352
    Zustimmungen:
    0
    Ort:
    Südpfalz
    Hi

    Ich wollte mich gerade mal versuchen aber ich verstehe die Einteilung nicht so ganz.
    Wieso wird 14:48:15 zurück gerechnet auf 14:40:00
    und 14:59:44 vor gerechnet auf 15:00:00
    ?
     
  4. #3 JoeDormann, 26.11.2011
    Zuletzt bearbeitet: 26.11.2011
    JoeDormann

    JoeDormann Grünschnabel

    Dabei seit:
    19.11.2011
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo,

    hmm ja, es ist so, das eine Grafik erzeugt werden soll, die auf der Zeitbasis im 10-Minutenturnus basiert.
    Dazu werden die eingetroffenen Daten eines Zeitabschnittes, z.B. 1 Minute vor 10:00:00 bis 9 Min nach 10:00:00 zusammengefaßt.
    Die 4 Werte aller eingetroffenen Daten werden zusätzlich 4 Spalten gesplittet und für jede Spalte der Durchschnitt ermittelt und schreibe es erneut auf Platte.
    Da ich noch gruppieren muß nach Kontotyp und Provider, möchte ich die betreffenden Daten zuvor zusammenzufassen.
    Anschließend fülle ich ein Datenarray um die 4 Werte als übereinandergelegte Liniengrafik ausgeben zu können.
    Step by Step, sonst wirds zu kompliziert/unübersichtlich.

    Jedoch habe ich noch keine feste Idee wie ich diese Zeitzusammenfassung als reines bash-script hinbekommen soll.
    Ich mache es gerne so, das ich die Zwischenergebnisse auf die Platte schreibe und die nächste Bearbeitung das File wieder einliest.
    So kann ich die Zwischenergebnisse besser checken.

    Ich habe schon an php-cli gedacht, da es da etliche Methoden gibt, die es einfacher machen. Wenn es sich aber geschickt umgehen läßt, könnte ich auf php verzichten.

    Wie ich es letztendlich umsetze ist egal, da die Daten innerhalb von 2 Minuten komplett eintreffen, und das Script dann bis zu 7 Minuten Zeit hat umd alle Logbücher, incl. der gezippten, komplett durchzurödeln. Derzeitig brauche ich lediglich 10 Sekunden für 9 Gigabyte Log-Einträge für eine andere Grafik.

    Aber dieser jetzt neue Part kann da schon mehr ausmachen, vor allem, wenn der Umfang zig-Gigabyte entspricht. Naja, 7 Minuten sind genug ;)

    Gruß Joe
     
Thema:

Maskiertes Suchen, Ersetzen und Rechnen in access.log vor weitere Bearbeitung

Die Seite wird geladen...

Maskiertes Suchen, Ersetzen und Rechnen in access.log vor weitere Bearbeitung - Ähnliche Themen

  1. Shell-Skript Datum in einer Datai suchen

    Shell-Skript Datum in einer Datai suchen: Hallo zusammen Ich komm eigentlich aus der Klicki-Bunti-Welt von Windows. Seit geraumer Zeit versuche ich meine Künste mit verschiedenen...
  2. [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

    [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter: Hallo zusammen, ich bin an einem Punkt angekommen, wo ich nicht mehr weiter komme und hoffe ihr könnt mir weiter helfen. Anbei ein Ausschnitt aus...
  3. CH Open Source Awards suchen Bewerber

    CH Open Source Awards suchen Bewerber: Die Swiss Open Systems User Group /ch/open vergibt auch dieses Jahr die CH Open Source Awards an Firmen, Behörden, Gemeinschaften, Entwickler und...
  4. String einer bestimmten Zeile durchsuchen

    String einer bestimmten Zeile durchsuchen: Hallo, wie kann ich den eine bestimmte Zeile einer Textdatei zerlegen und daraus ein Stück entnehmen? Ich suche nach der Zeile in der "model...
  5. sed suchen und ersetzen mit Variable übergeben?

    sed suchen und ersetzen mit Variable übergeben?: hallo, ich habe folgenden sed-Befehl, der schon super ist und auch alles tut, was er tun soll, nur eben natürlich das $i einfach hinschreibt...