Logvereinfachung

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
vicbrother
Beiträge: 1016
Registriert: 23.12.2001 11:15:07
Wohnort: Hamburg

Logvereinfachung

Beitrag von vicbrother » 11.06.2006 18:01:03

Hallo,

mein Server erstellt große unübersichtliche Zugriffslogfiles. Damit ich erstmal einen Überblick habe, was wann passiert ist, sortiere ich mit sort diese nach einem bestimmten Feld (IP-Adresse) und zähle mit uniq dann die Vorkomnisse und lasse mir das in einer Datei ausgeben. Allerdings sind nun noch sehr viele Informationen in dieser Zeile, die nicht sinnvoll sind (z.B. das Datum) und die ich gerne rauswerfen würde. Diese Daten stehen zwischen zwei festen Zeichenketten "+++" und "IP:" - wie schneide ich nun diese Zeichenketten und den Zwischenraum aus und werfe diese weg? Welches Tool wäre dafür optimal?
Debian GNU/Linux "unstable" + KDE4 @ Dell Precision M6400
T9600 - 4GB RAM - 2x160GB RAID0 - nVIDIA Quadro FX 3700M - 17" WUXGA RGB LED - Webcam - Backlit Keyboard - UMTS - 9 Cell Battery -

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 11.06.2006 19:16:47

Hi,

awk, perl, sed, ... sind fuer diese art der Textverarbeitung bestens geeignet.
Optimal ist das Tool, mit dem du das von dir gewuenschte Ergebnis am schnellsten, besten, ... erstellen kannst, ist also nicht pauschal zu beantworten.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
vicbrother
Beiträge: 1016
Registriert: 23.12.2001 11:15:07
Wohnort: Hamburg

Beitrag von vicbrother » 11.06.2006 20:01:25

Ich würds gerne als Shellskript machen, aber ich verstehe sed irgendwie nicht. Gibts da ein Tutorial für (außer der FAQ) oder ist es einfach nur schlecht dokumentiert?
Debian GNU/Linux "unstable" + KDE4 @ Dell Precision M6400
T9600 - 4GB RAM - 2x160GB RAID0 - nVIDIA Quadro FX 3700M - 17" WUXGA RGB LED - Webcam - Backlit Keyboard - UMTS - 9 Cell Battery -

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 11.06.2006 20:12:51

Hi,

das kannst du alles in einem Shell Script machen, kein Problem.
Ein (ungetesteter!) Schuss aus der Huefte:

Code: Alles auswählen

sed -e 's/+++.*IP/---ip/g'<dein_Logfile >Ausgabe
Damit wird "+++" eine beliebige Zeichenkette (kann auch 0 Zeichen lang sein) mit anschliessendem "IP" durch die Zeichenkette "---ip" ersetzt. Das g hinten bedeutet, das wenn das ganze mehrfach in einer Zeile vorkommt, das es auch mehrfach ersetzt werden soll. Das s am Anfang steht fuer substitute, also ersetzen.
Als Scripting Tutorial empfehle ich eigentlich immer den Advanced Bash-Scripting Guide, wenn das nicht reicht, frag weiter, kein Thema. InDie naechsten Tage werde ich allerdings nicht so haeufig online sein, kann also was dauern, aber hier gibt's genug Kracks die es drauf haben :wink:
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
vicbrother
Beiträge: 1016
Registriert: 23.12.2001 11:15:07
Wohnort: Hamburg

Beitrag von vicbrother » 11.06.2006 23:43:07

Ah danke für den Tipp, damit kann ich was anfangen!
Debian GNU/Linux "unstable" + KDE4 @ Dell Precision M6400
T9600 - 4GB RAM - 2x160GB RAID0 - nVIDIA Quadro FX 3700M - 17" WUXGA RGB LED - Webcam - Backlit Keyboard - UMTS - 9 Cell Battery -

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 12.06.2006 10:16:56

Kein Thema
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Antworten