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 :

Comparer x listes de x serveurs


Sujet :

Langage Perl

  1. #1
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut Comparer x listes de x serveurs
    Bonjour,

    J'aurais besoin d'une vision nouvelles sur mon scripts car je tourne en rond.


    Bon alors :

    Je dois récupérer des fichiers de scripts sur un nombres indéterminé de serveurs.
    Le nombre de serveur se situe sur un fichier extérieur que je récupère dans @serveur

    Comme j'utilise Net::SSh , j'utilise une commande find pour récupérer sur chaque serveur un série de fichier du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    -rw-r--r--  1 gg   gg     541 2007-09-26 15:40 .vimrc
    que je met dans un fichier et que ensuite je découpe de la façon suivante

    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
     
    while ( my $ligne = <FICHIER> ) {
                (
                    $droits,   $inode,    $user,     $group, $poids,
                    $dateMois, $dateJour, $dateAnne, $nomFichier
                ) = split /\s+/, $ligne;
     
                push @{ $size[$i] },         $poids;
                push @{ $utilisateur[$i] },  $user;
                push @{ $nomDuFichier[$i] }, $nomFichier;
                push @{ $dateFichier[$i] },
                  $dateMois . "-" . $dateJour . "-" . $dateAnne;
     
                push @recupTableau, $nomFichier;
     
            }
    je récupérer donc x listes de x serveur, j'ai également une liste @recupTableau qui récupérer tous les fichiers de tous les serveurs et qu'au finale je lui applique un petit code(trouver sur ce forum), pour éliminer les éventuels doublons

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my %seen;
        my @unique = grep { ++$seen{$_} == 1 } @recupTableau;

    enfin je veux faire un fichier Excell, pour visualiser quelle fichier se trouve sur quelle serveur.


    je vous passe les détails mais j'essaye une triple boucle de ce genre

    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
     
     
        #Création des colonnes avec le nom des serveurs
        for ( $i = 0 ; $i < @serveur ; $i++ ) {
            $worksheet->write( 0, 2 + $i, $serveur[$i] );
     
     
            for ( $a = 0 ; $a < @unique ; $a++ ) {
     
     
                for ( $b = 0 ; $b < @{ $nomDuFichier[$i] } ; $b++ ) {
                    if ( $unique[$a] eq $nomDuFichier[$i][$b] ) {
     
                        $worksheet->write(1 + $b,2 + $i,$nomDuFichier[$i][$b]);
                       next;
     
                    }   
                 }
     
            }
     
        }
         for ( $a = 0 ; $a < @unique ; $a++ ) {
            	$worksheet->write( 1 + $a, 0, "$unique[$a]" );
         }
    Mon problème se situe dans la comparaison, en effet dans les colonnes du fichiers je pensais que si le fichier n'existe pas sur un serveur il me laisserais la cellule blanche.

    mais non il rempli tout à la suite de l'autre, il ne compare pas en fait.

    Et là je plane.....................................


    merci de votre aide.


    MaitrePylos

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    J'ai trouvé.

    simple erreur dans la boucle.


    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
     
    for ( $i = 0 ; $i < @serveur ; $i++ ) {
            $worksheet->write( 0, 2 + $i, "$serveur[$i]" );
     
            for ( $b = 0 ; $b < @unique ; $b++ ) {
                $worksheet->write( 1 + $b, 0, "$unique[$b]" );
     
                #Parcours des fichiers se trouvant sur engelfar1
                for ( $a = 0 ; $a < @{ $nomDuFichier[$i] } ; $a++ ) {
     
                    if ( $unique[$b] =~ /^$nomDuFichier[$i][$a]$/i ) {
                        $worksheet->write(
                            1 + $b, 2 + $i,
    $worksheet->write(1 + $b,2 + $i,$nomDuFichier[$i][$a]);
     
                        );
                        last;
     
                    }
     
                }
     
            }
        }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comparer deux listes
    Par timtim2007 dans le forum Prolog
    Réponses: 7
    Dernier message: 07/06/2019, 09h02
  2. Problème liste de distribution serveur exchange
    Par ohjojo dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 19/11/2007, 12h46
  3. ne pas perdre info d'une liste apres retour serveur
    Par decksroy dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/01/2007, 11h23
  4. [C# 2.0] Comparer deux listes
    Par Rodie dans le forum Windows Forms
    Réponses: 4
    Dernier message: 01/08/2006, 00h40
  5. Comparer des listes de prix
    Par denisfavre dans le forum Access
    Réponses: 8
    Dernier message: 08/11/2005, 20h11

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