Probs mit Perl script

D

DBS

Grünschnabel
Moin zusammen,
ich habe da ein kleines Problem und komme nicht weiter, ich hoffe Ihr könnt mir da Weiterhelfen. Und zwar ich habe ne aufgabe bekommen wo ich nicht mehr Weiter weiss, ich stell mal die Aufgabe hier rein und meinen Bisheriges Script und hoffe das einer von euch mir da weiterhelfen kann???

Aufgabe:
Hallo Herr ....,

Auf einer Solaris Maschine sollen die Logfiles /var/adm/messages und /var/log/syslog täglich wie folgt behandelt werden:

für jede Meldung soll das erste und letzte Auftreten (Zeitraum) und die Anzahl der gleichen Pattern ermittelt werden

1. Files der letzten n-Tage in neues File
2.neues File sortieren
3,jedes mgl.Pattern nach dem Muster, Anzahl und Zeitraum auslesen

Programmaufruf: Programm <LogFile>

Bitte benutzen Sie dazu, die Ihnen von Herrn xxxx zur Verfügung gestellte Solaris-Maschine.
Mit freundlichen Grüßen


Script:

#!/usr/bin/perl
#
#
#einlesen
open(DATEI,"</var/adm/messages");
my @testArray = <DATEI>;
close(DATEI);
#schreiben
open(file, ">testkopie.txt");
foreach my $key (@testArray) {
print file "$key\n";
}
close(file);



#erzeugen des Hash für das Sotieren
%sort_hash;

#erzeugen des Hash für das wandeln von Monaten in Zahlen
%monat = ( 1 => 'Jan',
2 => 'Feb',
3 => 'Mar',
4 => 'Apr',
5 => 'May',
6 => 'Jun',
7 => 'Jul',
8 => 'Aug',
9 => 'Sep',
10 => 'Oct',
11 => 'Nov',
12 => 'Dec',);

#Teilen in Datum und Zeile
foreach(@zu_sort_array) {
#Teilen der Zeile nach Leerzeichen
@geteilt = split("/s", $_);
#Sichern der Zeile
$var2 = $_;
#Wandeln des Datums in eine Zahl
$var1 = $monat{@geteilt[0]}.".".@geteilt[1].@geteilt[2]."\n";
#Schreiben des Arrays
$sort_hash{'$var1'} = "$var2";
}

#Eigentliches sotieren
@keys_sorted_by_value = sort { $sort_hash{$a} <=> $sort_hash{$b} } keys %hash;

#Ausgabe des sotierten Array
foreach (@keys_sorted_by_value) {
print "$_ hat Wert $sort_hash{$_}\n";
}


Mein Problem:
Ich weiss jetzt nicht wie ich es am besten umsetzen kann das die Files zusammengefasst werden so das das erste und letzte gleiche meldung (Zeitraum) angezeigt wird mit der Anzahl der Häufigkeit.
Ich hoffe mir kann da einer Weiterhelfen

Gruß atze
 

Ähnliche Themen

perl script, das Dateien aus einer Liste löscht

Eingabe 2er paramerter????

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Zurück
Oben