Script en PERL qui lit syslog et analyse chaque ligne
Fermé
TempoAA
Messages postés
3
Date d'inscription
lundi 31 mars 2014
Statut
Membre
Dernière intervention
15 avril 2014
-
Modifié par TempoAA le 1/04/2014 à 00:02
TempoAA Messages postés 3 Date d'inscription lundi 31 mars 2014 Statut Membre Dernière intervention 15 avril 2014 - 15 avril 2014 à 03:08
TempoAA Messages postés 3 Date d'inscription lundi 31 mars 2014 Statut Membre Dernière intervention 15 avril 2014 - 15 avril 2014 à 03:08
A voir également:
- Script en PERL qui lit syslog et analyse chaque ligne
- Script vidéo youtube - Guide
- Comment savoir si quelqu'un lit mes messages sur whatsapp - Accueil - Messagerie instantanée
- Site de vente en ligne particulier - Guide
- Partager photos en ligne - Guide
- Aller à la ligne excel - Guide
2 réponses
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
1 avril 2014 à 12:41
1 avril 2014 à 12:41
Salut TempoAA,
Donne un extrait représentatif de ton fichier de log, un exemple de ce que tu veux obtenir en sortie, et le code que tu as fait et qui ne fonctionne pas.
Dal
Donne un extrait représentatif de ton fichier de log, un exemple de ce que tu veux obtenir en sortie, et le code que tu as fait et qui ne fonctionne pas.
Dal
TempoAA
Messages postés
3
Date d'inscription
lundi 31 mars 2014
Statut
Membre
Dernière intervention
15 avril 2014
13 avril 2014 à 18:56
13 avril 2014 à 18:56
Bonjour, voici un extrait du log et le code que j'ai fait
log
Jul 26 20:06:34 deneb PAM_unix[15771]: (system-auth) session opened for user brejeon by (uid=0)
Jul 26 20:06:34 deneb -- brejeon[15771]: LOGIN ON pts/5 BY brejeon FROM sirius
Jul 26 20:43:32 deneb PAM_unix[15771]: (system-auth) session closed for user brejeon
Jul 27 01:24:53 deneb PAM_unix[15960]: (system-auth) session opened for user guilleme by (uid=0)
Jul 27 01:24:53 deneb -- guilleme[15960]: LOGIN ON pts/5 BY guilleme FROM sirius
Jul 27 01:29:29 deneb PAM_unix[15960]: (system-auth) session closed for user guilleme
Jul 27 01:30:33 deneb PAM_unix[15996]: check pass; user unknown
Jul 27 01:30:33 deneb PAM_unix[15996]: authentication failure; (uid=0) -> etudinfo for system-auth service
Jul 27 01:30:33 deneb login[15996]: FAILED LOGIN 1 FROM sirius FOR etudinfo, Authentication failure
Jul 27 01:30:39 deneb PAM_unix[15996]: (system-auth) session opened for user guilleme by (uid=0)
Jul 27 01:30:39 deneb -- guilleme[15996]: LOGIN ON pts/5 BY guilleme FROM sirius
Jul 27 01:31:21 deneb PAM_unix[15996]: (system-auth) session closed for user guilleme
Jul 27 08:31:22 deneb PAM_unix[16954]: (system-auth) session opened for user roynette by (uid=0)
Jul 27 08:31:22 deneb -- roynette[16954]: LOGIN ON pts/5 BY roynette FROM sirius
Jul 27 08:32:44 deneb pam_rhosts_auth[16969]: denied to alaing@sirius.info-ua as alaing: access not allowed
Jul 27 08:32:48 deneb PAM_unix[16970]: (system-auth) session opened for user alaing by (uid=0)
Jul 27 08:32:48 deneb login -- alaing[16970]: LOGIN ON pts/7 BY alaing FROM sirius
Jul 27 08:33:25 deneb PAM_unix[16988]: (system-auth) session opened for user hamon by (uid=0)
Jul 27 08:33:25 deneb -- hamon[16988]: LOGIN ON pts/8 BY hamon FROM sirius
Jul 27 08:40:30 deneb PAM_unix[17013]: (system-auth) session opened for user darlhac by (uid=0)
Jul 27 08:40:30 deneb -- darlhac[17013]: LOGIN ON pts/9 BY darlhac FROM sirius
Jul 27 08:54:00 deneb PAM_unix[17086]: (system-auth) session opened for user gillier by (uid=0)
Jul 27 08:54:00 deneb -- gillier[17086]: LOGIN ON pts/10 BY gillier FROM sirius
Jul 27 08:55:44 deneb PAM_unix[17086]: (system-auth) session closed for user gillier
Jul 27 09:13:13 deneb pam_rhosts_auth[17247]: allowed to deleau@deleau.info-ua as deleau
Jul 27 09:13:13 deneb PAM_pwdb[17247]: (rsh) session opened for user deleau by (
code
#!/usr/bin/perl
use strict;
use warnings;
my $filename = "C:\\Users\\Desktop\\PERL_sous_Windows\\syslog1.txt";
open (my $fh, '<', $filename)
or die "Erreur : impossible d'ouvrir le fichier '$filename'";
my %logstat;
while (my $line = <$fh>){
chomp $ligne;
my @champs = split / /; $ligne;
my %info = (
mois => $champs[0],
date => $champs[1],
heure => $champs[2],
adresse => $champs[3],
service => $champs[4],
processno => $champs[5],
message => $champs[6],
);
$logstat{$champs[0]} = { %info};
print " $logstat{$champs[0]} \n" ;
}
close $fh;
<>; #symbol de pause sous windows
log
Jul 26 20:06:34 deneb PAM_unix[15771]: (system-auth) session opened for user brejeon by (uid=0)
Jul 26 20:06:34 deneb -- brejeon[15771]: LOGIN ON pts/5 BY brejeon FROM sirius
Jul 26 20:43:32 deneb PAM_unix[15771]: (system-auth) session closed for user brejeon
Jul 27 01:24:53 deneb PAM_unix[15960]: (system-auth) session opened for user guilleme by (uid=0)
Jul 27 01:24:53 deneb -- guilleme[15960]: LOGIN ON pts/5 BY guilleme FROM sirius
Jul 27 01:29:29 deneb PAM_unix[15960]: (system-auth) session closed for user guilleme
Jul 27 01:30:33 deneb PAM_unix[15996]: check pass; user unknown
Jul 27 01:30:33 deneb PAM_unix[15996]: authentication failure; (uid=0) -> etudinfo for system-auth service
Jul 27 01:30:33 deneb login[15996]: FAILED LOGIN 1 FROM sirius FOR etudinfo, Authentication failure
Jul 27 01:30:39 deneb PAM_unix[15996]: (system-auth) session opened for user guilleme by (uid=0)
Jul 27 01:30:39 deneb -- guilleme[15996]: LOGIN ON pts/5 BY guilleme FROM sirius
Jul 27 01:31:21 deneb PAM_unix[15996]: (system-auth) session closed for user guilleme
Jul 27 08:31:22 deneb PAM_unix[16954]: (system-auth) session opened for user roynette by (uid=0)
Jul 27 08:31:22 deneb -- roynette[16954]: LOGIN ON pts/5 BY roynette FROM sirius
Jul 27 08:32:44 deneb pam_rhosts_auth[16969]: denied to alaing@sirius.info-ua as alaing: access not allowed
Jul 27 08:32:48 deneb PAM_unix[16970]: (system-auth) session opened for user alaing by (uid=0)
Jul 27 08:32:48 deneb login -- alaing[16970]: LOGIN ON pts/7 BY alaing FROM sirius
Jul 27 08:33:25 deneb PAM_unix[16988]: (system-auth) session opened for user hamon by (uid=0)
Jul 27 08:33:25 deneb -- hamon[16988]: LOGIN ON pts/8 BY hamon FROM sirius
Jul 27 08:40:30 deneb PAM_unix[17013]: (system-auth) session opened for user darlhac by (uid=0)
Jul 27 08:40:30 deneb -- darlhac[17013]: LOGIN ON pts/9 BY darlhac FROM sirius
Jul 27 08:54:00 deneb PAM_unix[17086]: (system-auth) session opened for user gillier by (uid=0)
Jul 27 08:54:00 deneb -- gillier[17086]: LOGIN ON pts/10 BY gillier FROM sirius
Jul 27 08:55:44 deneb PAM_unix[17086]: (system-auth) session closed for user gillier
Jul 27 09:13:13 deneb pam_rhosts_auth[17247]: allowed to deleau@deleau.info-ua as deleau
Jul 27 09:13:13 deneb PAM_pwdb[17247]: (rsh) session opened for user deleau by (
code
#!/usr/bin/perl
use strict;
use warnings;
my $filename = "C:\\Users\\Desktop\\PERL_sous_Windows\\syslog1.txt";
open (my $fh, '<', $filename)
or die "Erreur : impossible d'ouvrir le fichier '$filename'";
my %logstat;
while (my $line = <$fh>){
chomp $ligne;
my @champs = split / /; $ligne;
my %info = (
mois => $champs[0],
date => $champs[1],
heure => $champs[2],
adresse => $champs[3],
service => $champs[4],
processno => $champs[5],
message => $champs[6],
);
$logstat{$champs[0]} = { %info};
print " $logstat{$champs[0]} \n" ;
}
close $fh;
<>; #symbol de pause sous windows
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 14/04/2014 à 17:01
Modifié par [Dal] le 14/04/2014 à 17:01
Salut TempoAA,
Je pense que ton fichier de log n'est pas représentatif, car il ne permet pas d'observer le format des logs ssh, imap et pop.
Sur la méthode, tu ne devrais pas te servir de split sur le caractère espace car il y a des informations à isoler qui ne sont pas séparées par des espaces. Il te faudrait des regexp adaptées aux différents types de lignes, pour capturer l'information comme il le faut.
Enfin, il n'est pas utile de conserver en mémoire toutes les données du fichier de log, comme tu le fais, puisqu'on te demande des cumuls.
Dal
Je pense que ton fichier de log n'est pas représentatif, car il ne permet pas d'observer le format des logs ssh, imap et pop.
Sur la méthode, tu ne devrais pas te servir de split sur le caractère espace car il y a des informations à isoler qui ne sont pas séparées par des espaces. Il te faudrait des regexp adaptées aux différents types de lignes, pour capturer l'information comme il le faut.
Enfin, il n'est pas utile de conserver en mémoire toutes les données du fichier de log, comme tu le fais, puisqu'on te demande des cumuls.
Dal
TempoAA
Messages postés
3
Date d'inscription
lundi 31 mars 2014
Statut
Membre
Dernière intervention
15 avril 2014
15 avril 2014 à 03:08
15 avril 2014 à 03:08
Bonjour ,
j'apprécie beaucoup ton aide . je vais continuer à travailler sur le code alors
j'apprécie beaucoup ton aide . je vais continuer à travailler sur le code alors