Perl analyse de fichier

Fermé
finelady Messages postés 3 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 23 mars 2008 - 23 mars 2008 à 19:29
 ift3830 - 8 avril 2008 à 20:39
Bonjour,
Bonjour je veux faire une analyse de mon fichier du nom de test.log qui contien les lignes suivantes:

Jan-13 04:12:41 server.alpha.allo.com. ipop3d[26735]: pop3 service init from 132.204.24.100
Jan-13 04:12:42 server.alpha.allo.com. imapd[26748]: imap service init from 132.204.24.100
Jan-13 04:05:44 client.alpha.allo.com sendmail[22674]: i0D95hr8022674: to=root, ctladdr=root (0/1), delay=00:00:01,
mailer=relay, pri=30271, relay=[127.0.0.1], dsn=2.0.0, stat=Sent (i0D95hEt022675 Message accepted for delivery)
Jan-13 04:15:27 Andre.alpha.allo.com sshd2[412]: connection from "132.204.24.100"

Je veux que mon script perl fasse l’analyse du fichier en question pour envoyer le resultat dans un fichier nommé « resultat.txt » que j’envoie directement avec sendmail a l’adresse courielle contenue dans la variable d’enironnement SYSADMIN.

Le script doit :

Trouver :
-la période couverte du log (début-fin) avec dates et heures
-le nombre total de traces (lignes) pour chaque machine (adresse-visée)
-le nombre total de traces pour chaque service
-le nombre de connexions pop, ssh et imap
-la liste des adresses qui ont fait une connexion ssh et le nombre de fois chaque
-la liste des adresses qui ont envoyé du courriel par sendmail et le nombre de fois chaque.

J'avoue que certains vont dire que je suis nullllllllll, je le suis effectivement, j'aime perl mais comme debutant je le trouve difficile, ou peut etre suis juste nulllllll, de l'aide s'il vous des indices, suggestions, tuto etc...

merci d'avance

#!/usr/bin/perl -w
$StartTime = localtime;
$DayCounter=0;
$HitCounter=0;
$nbSsh=0;
$nbPop3=0;
$nbImap=0;
open (LOGFILE, "test.log") || die "can't open file";

{
$line = <LOG>;
while ($line)
{

if ($line =~ m/^....-..-.. ..:..:../)
{

$HitCounter++;
@e = split (/ /, $line);
print ("$e[0], $e[1]\n");
print $line;


#@Date = split (/-/, $e[0]);
@Time = split (/:/, $e[1]);
}

if ($e[3] == "pop3")
{
$nbPop3++;
}
if ($e[3] == "imap")
{
$nbImap++;
}
if ($e[3] == "ssh")
{
$nbSsh++;
}
if ($e[2] == "sendmail")
{
@e = split (/ /, $e[2])
$nbPop3++;
}

}


$EndTime = localtime;
print "\n Complete Report\n";
print " ===============\n";
print " Report started : $StartTime\n";
print " Report ended : $EndTime\n";
printf (" Hits : %12d\n", $HitCounter);
printf (" Hits (POP3) : %12d\n", $nbPop3);
printf (" Hits (IMAP) : %12d\n", $nbImap);
printf (" Hits (SSH) : %12d\n", $nbSsh);

|sort -k 2nr >Analyselog.txt

}
A voir également:

1 réponse

Je peux te donner la solution de l'exo1 du TP3 mais comment tu vas faire pour ton examen du 23 avril?
3