Funktionen

Print[PRINT]
.  Home  .  Lehre  .  Vorlesungen  .  Wintersemester 2005/06  .  Übung zur Vorlesung Rechnernetze  .  Perl-Aufgaben  .  Uebung01

Perl-Aufgaben

Übungsblatt 1

Aufgabe 1.5 - Analyse von Logfiles

Spätester Abgabetermin: Mittwoch, 26.10.2005, 12.00 Uhr mittags

Entpacken Sie das Archiv access_log.zip (ca. 320 kB) und analysieren Sie die enthaltenen fiktiven Access-Logfiles eines HTTP-Servers:

  • access_kurz.log Datei 1 mit 88 Zeilen, 10.661 Byte
  • access_lang.log Datei 2 mit 20.572 Zeilen, 2.701.034 Byte

Zeilenformat:

  • DNS-Name des zugreifenden Rechners
  • -
  • -
  • Datum und Uhrzeit
  • Request-String zwischen Gänsefüßchen
  • HTTP-Return-Code
  • Größe der Datei in Byte oder ein '-', wenn dem Request keine Dateigröße zugeordnet werden kann.

indem Sie mit einem Perl-Programm eine tabellarische Übersicht erzeugen, welche Dateigrößen wie häufig angefordert wurden. Verwenden Sie für die Einordnung die Klassen 0-9999 Byte, 10000-19999 Byte, etc. so wie unten im Beispiel. Zählen Sie in jeder Klasse die absolute Häufigkeit der Zugriffe.

Hinweis: Beachten Sie, dass die gesuchte Information immer am Ende der Zeile steht! Nutzen Sie für das Extrahieren der gewünschten Information einen regulären Ausdruck, der '$' enthält und damit nur am Ende der Zeile matcht.

Zeilen, die als Dateigröße einen '-' haben, zählen Sie bitte extra (sie gehen also nicht in die Tabelle ein) und geben diese Zahl unten in einer gesonderten Zeile an. Geben Sie außerdem die Gesamtzeilenzahl an.

Hinweis: Die Summe der absoluten Häufigkeiten in der Tabelle und der Zeilen mit '-' muss die Gesamtzeilenzahl ergeben.

Beispiel (so sollte ihr Ergebnis für access_kurz.log aussehen):

Auswertung mit linearer Skala

0 - 9999        50 
10000 - 19999   19 
20000 - 29999   1 
30000 - 39999   0 
40000 - 49999   0 
50000 - 59999   1 
60000 - 69999   0 
70000 - 79999   1 
80000 - 89999   0 
90000 - 99999   0 
      > 99999   1

Zeilen mit '-': 15
Gesamtzeilenzahl: 88

Einsenden ihrer Lösung

Erstellen Sie zwei Dateien:

loesung01-gruppe#-name-vorname.pl, z.B. loesung01-gruppe2-mustermann-hans.pl
Ihr Perl-Programm, dass die Aufgabe löst.
ergebnis01-gruppe#-name-vorname.txt
Das Ergebnis des Laufs Ihres Programms mit der Eingabe access_lang.log
Packen Sie beide Dateien in eine Zip-Datei loesung01-gruppe#-name-vorname.zip und hängen Sie diese Datei an eine Mail an, die Sie Ihren Tutor schicken. Aus jedem Dateinamen geht also ihr Name, ihr Vorname und die Nummer ihrer Übungsgruppe (siehe Tabelle) hervor.

Beispiel-Lösung

beispielloesung-ueb1-5.pl