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

Programmation et administration système Perl Discussion :

[SUITE] récupérer valeurs dans variables


Sujet :

Programmation et administration système Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut [SUITE] récupérer valeurs dans variables
    Bonjour,

    Suite à un problème sur l'ancien fil de discussion : http://www.developpez.net/forums/d12...urs-variables/ : le forum retourne une erreur 500 lors de la consultation, voici la suite


    Le script PERL dans son intégralité :
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
     
    use Net::SSH2;
    use strict;
    use warnings;
     
    use feature qw(:5.10);
    use List::MoreUtils qw(pairwise);
     
    my $ip="192.168.10.10";
    my $password="password";
    my $user="admin";
    my $enable=$password;
     
    my $ssh2 = Net::SSH2->new();
    $ssh2->connect("$ip") or die;
    if ($ssh2->auth_password("$user","$password")) {
    my $chan2 = $ssh2->channel();
    $chan2->shell();
    $chan2->blocking(0);
    print $chan2 "terminal length 0\n";
    print $chan2 "enable\n";
    print $chan2 "$enable\n";
    print $chan2 "sh interfaces counters\n";
     
    my %var;
    our ($a, $b);
     
    my @col_names;
    while (defined( my $line = <$chan2>)) {
      chomp $line;
      if ($line =~ /^Port/) {
        @col_names = split /\s+/, $line;
        shift @col_names;
      }
      elsif (@col_names) {
        if (my @col_values = split /\s+/, $line) {
          my $key = shift @col_values;
    say "Line: $line";
    say "Key: $key";
    say join ", ", pairwise { $a." => ".$b } @col_names, @col_values;
          $var{$key} = { pairwise { $a => $b } @col_names, @col_values } if defined $key;
        }
      }
    }
     
    say "Key Gi0/2, InOctets: ", $var{"Gi0/2"}->{"InOctets"};
     
    $chan2->close();
     
    } else {
    warn "auth error.\n";
    }
    Ici je voudrais récupérer les valeurs InOctets et OutOctets de l'interface Gi0/2

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Et que retourne le script ???

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    Le script retourne :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
     
    ./switch.pl
    Line: Fa0/1           38994637          92150         154264           6155
    Key: Fa0/1
    InOctets => 38994637, InUcastPkts => 92150, InMcastPkts => 154264, InBcastPkts => 6155
    Line: Fa0/2        19954317931       19765110         238797          67376
    Key: Fa0/2
    InOctets => 19954317931, InUcastPkts => 19765110, InMcastPkts => 238797, InBcastPkts => 67376
    Line: Fa0/3          642615699        3337962             67           9014
    Key: Fa0/3
    InOctets => 642615699, InUcastPkts => 3337962, InMcastPkts => 67, InBcastPkts => 9014
    Line: Fa0/4         3796890138        8923787            300           4019
    Key: Fa0/4
    InOctets => 3796890138, InUcastPkts => 8923787, InMcastPkts => 300, InBcastPkts => 4019
    Line: Fa0/5          959937874        6393942            124            857
    Key: Fa0/5
    InOctets => 959937874, InUcastPkts => 6393942, InMcastPkts => 124, InBcastPkts => 857
    Line: Fa0/6          812098430        5375191             29           3754
    Key: Fa0/6
    InOctets => 812098430, InUcastPkts => 5375191, InMcastPkts => 29, InBcastPkts => 3754
    Line: Fa0/7         8256991805       29393309          75399          58599
    Key: Fa0/7
    InOctets => 8256991805, InUcastPkts => 29393309, InMcastPkts => 75399, InBcastPkts => 58599
    Line: Fa0/8         2176240651        9350819         216918         340325
    Key: Fa0/8
    InOctets => 2176240651, InUcastPkts => 9350819, InMcastPkts => 216918, InBcastPkts => 340325
    Line: Fa0/9         2075684972       17924520          30777         127927
    Key: Fa0/9
    InOctets => 2075684972, InUcastPkts => 17924520, InMcastPkts => 30777, InBcastPkts => 127927
    Line: Fa0/10           7802935          51324              6            192
    Key: Fa0/10
    InOctets => 7802935, InUcastPkts => 51324, InMcastPkts => 6, InBcastPkts => 192
    Line: Fa0/11        8007316370       13391384           5731         396084
    Key: Fa0/11
    InOctets => 8007316370, InUcastPkts => 13391384, InMcastPkts => 5731, InBcastPkts => 396084
    Line: Fa0/12                 0              0              0              0
    Key: Fa0/12
    InOctets => 0, InUcastPkts => 0, InMcastPkts => 0, InBcastPkts => 0
    Line: Fa0/13                 0              0              0              0
    Key: Fa0/13
    InOctets => 0, InUcastPkts => 0, InMcastPkts => 0, InBcastPkts => 0
    Line: Fa0/14        1124993080         856145             74              3
    Key: Fa0/14
    InOctets => 1124993080, InUcastPkts => 856145, InMcastPkts => 74, InBcastPkts => 3
    Line: Fa0/15                 0              0              0              0
    Key: Fa0/15
    InOctets => 0, InUcastPkts => 0, InMcastPkts => 0, InBcastPkts => 0
    Line: Fa0/16                 0              0              0              0
    Key: Fa0/16
    InOctets => 0, InUcastPkts => 0, InMcastPkts => 0, InBcastPkts => 0
    Line: Fa0/17                 0              0              0              0
    Key: Fa0/17
    InOctets => 0, InUcastPkts => 0, InMcastPkts => 0, InBcastPkts => 0
    Line: Fa0/18                 0              0              0              0
    Key: Fa0/18
    InOctets => 0, InUcastPkts => 0, InMcastPkts => 0, InBcastPkts => 0
    Line: Fa0/19         126086300         493401              6            141
    Key: Fa0/19
    InOctets => 126086300, InUcastPkts => 493401, InMcastPkts => 6, InBcastPkts => 141
    Line: Fa0/20                 0              0              0              0
    Key: Fa0/20
    InOctets => 0, InUcastPkts => 0, InMcastPkts => 0, InBcastPkts => 0
    Line: Fa0/21                 0              0              0              0
    Key: Fa0/21
    InOctets => 0, InUcastPkts => 0, InMcastPkts => 0, InBcastPkts => 0
    Line: Fa0/22                 0              0              0              0
    Key: Fa0/22
    InOctets => 0, InUcastPkts => 0, InMcastPkts => 0, InBcastPkts => 0
    Line: Fa0/23                 0              0              0              0
    Key: Fa0/23
    InOctets => 0, InUcastPkts => 0, InMcastPkts => 0, InBcastPkts => 0
    Line: Fa0/24                 0              0              0              0
    Key: Fa0/24
    InOctets => 0, InUcastPkts => 0, InMcastPkts => 0, InBcastPkts => 0
    Line: Gi0/1            9478722          67443              5            211
    Key: Gi0/1
    InOctets => 9478722, InUcastPkts => 67443, InMcastPkts => 5, InBcastPkts => 211
    Line: Gi0/2        25672520800       98456525        5889156       11489217
    Key: Gi0/2
    InOctets => 25672520800, InUcastPkts => 98456525, InMcastPkts => 5889156, InBcastPkts => 11489217
    Line: Fa0/1         1471057948         231057        6428386       12492382
    Key: Fa0/1
    OutOctets => 1471057948, OutUcastPkts => 231057, OutMcastPkts => 6428386, OutBcastPkts => 12492382
    Line: Fa0/2         3300583785       12579155        6337169       12430149
    Key: Fa0/2
    OutOctets => 3300583785, OutUcastPkts => 12579155, OutMcastPkts => 6337169, OutBcastPkts => 12430149
    Line: Fa0/3         1660232495        3424087        6576292       12489667
    Key: Fa0/3
    OutOctets => 1660232495, OutUcastPkts => 3424087, OutMcastPkts => 6576292, OutBcastPkts => 12489667
    Line: Fa0/4         4323141858        8532958        6575925       12493133
    Key: Fa0/4
    OutOctets => 4323141858, OutUcastPkts => 8532958, OutMcastPkts => 6575925, OutBcastPkts => 12493133
    Line: Fa0/5         2295388064        6628514        5742053       10743057
    Key: Fa0/5
    OutOctets => 2295388064, OutUcastPkts => 6628514, OutMcastPkts => 5742053, OutBcastPkts => 10743057
    Line: Fa0/6         1767570595        5510232        5742177       10741189
    Key: Fa0/6
    OutOctets => 1767570595, OutUcastPkts => 5510232, OutMcastPkts => 5742177, OutBcastPkts => 10741189
    Line: Fa0/7         8064674506       29183302        5672825       10685778
    Key: Fa0/7
    OutOctets => 8064674506, OutUcastPkts => 29183302, OutMcastPkts => 5672825, OutBcastPkts => 10685778
    Line: Fa0/8         2666804181        8814211        5530460       10403226
    Key: Fa0/8
    OutOctets => 2666804181, OutUcastPkts => 8814211, OutMcastPkts => 5530460, OutBcastPkts => 10403226
    Line: Fa0/9         4000883484       19562089        6542485       12363168
    Key: Fa0/9
    OutOctets => 4000883484, OutUcastPkts => 19562089, OutMcastPkts => 6542485, OutBcastPkts => 12363168
    Line: Fa0/10        1194122197         125133        5742144       10744518
    Key: Fa0/10
    OutOctets => 1194122197, OutUcastPkts => 125133, OutMcastPkts => 5742144, OutBcastPkts => 10744518
    Line: Fa0/11        9594971440       12912028        6570921       12102501
    Key: Fa0/11
    OutOctets => 9594971440, OutUcastPkts => 12912028, OutMcastPkts => 6570921, OutBcastPkts => 12102501
    Line: Fa0/12        1187665637          76272        5737939       10732556
    Key: Fa0/12
    OutOctets => 1187665637, OutUcastPkts => 76272, OutMcastPkts => 5737939, OutBcastPkts => 10732556
    Line: Fa0/13                 0              0              0              0
    Key: Fa0/13
    OutOctets => 0, OutUcastPkts => 0, OutMcastPkts => 0, OutBcastPkts => 0
    Line: Fa0/14         367894640         498134            734           1629
    Key: Fa0/14
    OutOctets => 367894640, OutUcastPkts => 498134, OutMcastPkts => 734, OutBcastPkts => 1629
    Line: Fa0/15                 0              0              0              0
    Key: Fa0/15
    OutOctets => 0, OutUcastPkts => 0, OutMcastPkts => 0, OutBcastPkts => 0
    Line: Fa0/16                 0              0              0              0
    Key: Fa0/16
    OutOctets => 0, OutUcastPkts => 0, OutMcastPkts => 0, OutBcastPkts => 0
    Line: Fa0/17                 0              0              0              0
    Key: Fa0/17
    OutOctets => 0, OutUcastPkts => 0, OutMcastPkts => 0, OutBcastPkts => 0
    Line: Fa0/18                 0              0              0              0
    Key: Fa0/18
    OutOctets => 0, OutUcastPkts => 0, OutMcastPkts => 0, OutBcastPkts => 0
    Line: Fa0/19         215398333         460039         829752        1739535
    Key: Fa0/19
    OutOctets => 215398333, OutUcastPkts => 460039, OutMcastPkts => 829752, OutBcastPkts => 1739535
    Line: Fa0/20                 0              0              0              0
    Key: Fa0/20
    OutOctets => 0, OutUcastPkts => 0, OutMcastPkts => 0, OutBcastPkts => 0
    Line: Fa0/21                 0              0              0              0
    Key: Fa0/21
    OutOctets => 0, OutUcastPkts => 0, OutMcastPkts => 0, OutBcastPkts => 0
    Line: Fa0/22                 0              0              0              0
    Key: Fa0/22
    OutOctets => 0, OutUcastPkts => 0, OutMcastPkts => 0, OutBcastPkts => 0
    Line: Fa0/23                 0              0              0              0
    Key: Fa0/23
    OutOctets => 0, OutUcastPkts => 0, OutMcastPkts => 0, OutBcastPkts => 0
    Line: Fa0/24                 0              0              0              0
    Key: Fa0/24
    OutOctets => 0, OutUcastPkts => 0, OutMcastPkts => 0, OutBcastPkts => 0
    Line: Gi0/1         1194675529         136471        5742192       10744232
    Key: Gi0/1
    OutOctets => 1194675529, OutUcastPkts => 136471, OutMcastPkts => 5742192, OutBcastPkts => 10744232
    Line: Gi0/2        45821456611      106466935        1276493        1009358
    Key: Gi0/2
    OutOctets => 45821456611, OutUcastPkts => 106466935, OutMcastPkts => 1276493, OutBcastPkts => 1009358
    Line: switch#
    Key: switch#
    Use of uninitialized value in concatenation (.) or string at ./switch.pl line 42.
    Use of uninitialized value in concatenation (.) or string at ./switch.pl line 42.
    Use of uninitialized value in concatenation (.) or string at ./switch.pl line 42.
    Use of uninitialized value in concatenation (.) or string at ./switch.pl line 42.
    OutOctets => , OutUcastPkts => , OutMcastPkts => , OutBcastPkts =>
    Use of uninitialized value in say at ./switch.pl line 48.
    Key Gi0/2, InOctets:
    Ligne 3 à 80 données InOctets
    Ligne 81 à la fin données OutOctets

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Ben, tu demandes la ligne "GiO/2" avec la colonne "InOctets", mais cette ligne n'est pas retournée pour la colonne InOctets (seulement pour OutOctets)... c'est donc normal que tu n'ais rien en résultat.

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    Ben non, IN et OUT sont bien retournées...

    Gi0/2 IN :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Line: Gi0/2        25672520800       98456525        5889156       11489217
    Key: Gi0/2
    InOctets => 25672520800, InUcastPkts => 98456525, InMcastPkts => 5889156, InBcastPkts => 11489217
    InOctets => 25672520800

    Gi0/2 OUT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Line: Gi0/2        45821456611      106466935        1276493        1009358
    Key: Gi0/2
    OutOctets => 45821456611, OutUcastPkts => 106466935, OutMcastPkts => 1276493, OutBcastPkts => 1009358
    OutOctets => 45821456611

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Oups... désolé, j'ai mal regardé.

    Bon, il faut que je récupère les lignes de debug que tu as postée pour les mettre en entrée du script à la place du résultat de ssh et tester avec les bonnes données.

    Je reviens dans qques minutes.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/03/2015, 14h48
  2. [SUITE2] récupérer valeurs dans variables
    Par seb-65 dans le forum Programmation et administration système
    Réponses: 15
    Dernier message: 02/04/2012, 09h03
  3. récupérer valeurs dans variables
    Par seb-65 dans le forum Programmation et administration système
    Réponses: 27
    Dernier message: 27/03/2012, 17h09
  4. Récupérer valeur dans une variable globale
    Par zdig10 dans le forum VB.NET
    Réponses: 5
    Dernier message: 23/09/2011, 11h49
  5. Récupérer valeur dans un thread
    Par Nasky dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 07/06/2006, 21h37

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