IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Perte de message filtre perl


Sujet :

Langage Perl

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 26
    Par défaut Perte de message filtre perl
    Bonjour,

    J'ai a réaliser un filtre en perl pour le système syslog.
    J'ai en entrée un fichier .conf et un fichier .analyse et en sortie un fichier .tmp et .debug.
    Je voudrais réaliser la chose suivante: le script test une par une les ligne de .analyse et .conf et si une ligne de .conf et une sous-chaine de .analyse la ligne de .analyse est mise dans un fichier debug. Sinon elle est mise dans un fichier .tmp:

    exemple concret:
    analyse
    Apr 22 10:59:22 vmonitor Server Administrator: line
    Apr 22 10:58:49 vmonitor ntpd: ntpd 4.2.0a@1.1190-r Thu Oct 5 04:11:32 E
    Apr 22 10:58:49 vmonitor ntpd: precision = 18.000 usec
    Apr 22 10:58:49 vmonitor ntpd: Listening on interface wildcard, 0.0.0.0#1
    Apr 22 10:58:49 vmonitor ntpd: Listening on interface wildcard, ::#123
    Apr 22 10:58:49 vmonitor ntpd: Listening on interface lo, 127.0.0.1#123
    Apr 22 10:58:49 vmonitor ntpd: Listening on interface eth0, 172.16.15.39#

    .conf
    ntpd: precision
    ntpd: Listening on
    ntpd: ntpd

    Avec ce script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     open CONF,"$confFile" or die "E/S : $!\n";
    	open ANALYSE,"$fileAnalyse" or die "E/S : $!\n";
    	open TMP,">$fileTmp" or die "E/S : $!\n";
    	open DEBUG,">$fileDebug" or die "E/S : $!\n";	
     
     	my @conf=<CONF>;
    	chomp @conf;	
    	while(my $e=<ANALYSE>){	
    	  print DEBUG "$e";
    	  print TMP $e unless grep
    	  {
     	      $e=~ m/$_/i;
    	      if($e=~ m/$_/i){
    		print DEBUG "Filtré par $_\n\n";
    	      }
    	    }
    	  } @conf;
    	}
    J'obtient:
    .tmp
    RIEN alors qu'on devrait avoir : Apr 22 10:59:22 vmonitor Server Administrator: line

    .debug
    RIEN alors qu'on devrait avoir:
    Apr 22 10:58:49 vmonitor ntpd: precision = 18.000 usec
    Apr 22 10:58:49 vmonitor ntpd: Listening on interface wildcard, 0.0.0.0#1
    Apr 22 10:58:49 vmonitor ntpd: Listening on interface wildcard, ::#123
    Apr 22 10:58:49 vmonitor ntpd: Listening on interface lo, 127.0.0.1#123
    Apr 22 10:58:49 vmonitor ntpd: Listening on interface eth0, 172.16.15.39#


    Quelqu'un saurait d'où cela peut provenir.
    Cet exemple est copié mot pour mot de mon fichier

  2. #2
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 26
    Par défaut
    alors qu'avec ce fichier .analyse et ce fichier .conf cela focntionne:

    .analyse
    Storage Service EventID: 2242 The Patrol Read has started.: Controller 0 (PERC
    6/i Integrated)
    Storage Service EventID: 2243 The Patrol Read has stopped.: Controller 0 (PERC
    6/i Integrated)
    Storage Service EventID: 2095 SCSI sense data Sense key: 4 Sense code: 0 Sens
    e qualifier: 81: Physical Disk 0:17 Controller 0, Connector 0
    Storage Service EventID: 2095 SCSI sense data Sense key: 4 Sense code: 0 Sens
    e qualifier: 81: Physical Disk 0:17 Controller 0, Connector 0
    Storage Service EventID: 2095 SCSI sense data Sense key: 4 Sense code: 0 Sens
    e qualifier: 81: Physical Disk 0:17 Controller 0, Connector 0
    Storage Service EventID: 2095 SCSI sense data Sense key: 4 Sense code: 0 Sens
    e qualifier: 81: Physical Disk 0:17 Controller 0, Connector 0
    Storage Service EventID: 2095 SCSI sense data Sense key: 4 Sense code: 0 Sens
    e qualifier: 81: Physical Disk 0:17 Controller 0, Connector 0
    Instrumentation Service EventID: 1000 Server Administrator starting
    Instrumentation Service EventID: 1012 IPMI status Interface: OS


    .conf

    The Patrol Read has started
    The Patrol Read has stopped
    Server Administrator starting

    .tmp

    Storage Service EventID: 2095 SCSI sense data Sense key: 4 Sense code: 0 Sens
    e qualifier: 81: Physical Disk 0:17 Controller 0, Connector 0
    Storage Service EventID: 2095 SCSI sense data Sense key: 4 Sense code: 0 Sens
    e qualifier: 81: Physical Disk 0:17 Controller 0, Connector 0
    Storage Service EventID: 2095 SCSI sense data Sense key: 4 Sense code: 0 Sens
    e qualifier: 81: Physical Disk 0:17 Controller 0, Connector 0
    Storage Service EventID: 2095 SCSI sense data Sense key: 4 Sense code: 0 Sens
    e qualifier: 81: Physical Disk 0:17 Controller 0, Connector 0
    Storage Service EventID: 2095 SCSI sense data Sense key: 4 Sense code: 0 Sens
    e qualifier: 81: Physical Disk 0:17 Controller 0, Connector 0
    Instrumentation Service EventID: 1012 IPMI status Interface: OS

    .debug

    Storage Service EventID: 2242 The Patrol Read has started.: Controller 0 (PERC
    6/i Integrated) filtré par The Patrol Read has started
    Storage Service EventID: 2243 The Patrol Read has stopped.: Controller 0 (PERC
    6/i Integrated) filtré par The Patrol Read has stopped
    Instrumentation Service EventID: 1000 Server Administrator starting filtré par Server Administrator starting

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 26
    Par défaut
    donc je suis un peu beaucoup

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #!/usr/bin/perl
    use strict; use warnings;
     
    my($conf_file, $analyse_file, $tmp_file, $debug_file) =
      qw/.conf .analyse .tmp .debug/;
    my @filters = do {
      open my($conf), '<', $conf_file
        or die "Couldn't open $conf_file : $!\n";
      <$conf>
    };
    chomp @filters;
     
    open my($tmp), '>', $tmp_file
      or die "Couldn't open $tmp_file : $!\n";
    open my($debug), '>', $debug_file
      or die "Couldn't open $debug_file : $!\n";
     
    open my($analyse), '<', $analyse_file
      or die "Couldn't open $analyse_file : $!\n";
    while( my $line = <$analyse> ) {
      chomp $line; 
     
      my $filtered;
      for my $filter (@filters) {
        if( $line =~ m/$filter/i ) {
          print {$debug} "$line filtré par " unless $filtered++;
          print {$debug} "<$filter> ";
        }
      }
      print {$debug} "\n" if $filtered;
      print {$tmp} "$line\n" unless $filtered;
    }
    --
    Jedaï

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 26
    Par défaut
    merci je vais essayer ta solution

Discussions similaires

  1. Perte de messages dans un serveur socket
    Par jmelyn dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 25/01/2013, 17h23
  2. Pertes de messages : Inexplicable.
    Par iguypouf dans le forum Exchange Server
    Réponses: 18
    Dernier message: 23/10/2008, 16h10
  3. [JMS] Perte de message
    Par osoumayaj dans le forum Java EE
    Réponses: 1
    Dernier message: 17/07/2007, 15h40
  4. wifi et perte de message
    Par maamar1979 dans le forum Hardware
    Réponses: 1
    Dernier message: 11/07/2007, 13h23
  5. filtre perl sur un mail
    Par sasame dans le forum Modules
    Réponses: 3
    Dernier message: 21/01/2005, 07h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo