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 :

[SUITE2] récupérer valeurs dans variables


Sujet :

Programmation et administration système Perl

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Points : 48
    Points
    48
    Par défaut [SUITE2] récupérer valeurs dans variables
    Suite N°2, toujours un problème d'erreur 500 sur le forum dans les fils précédents

    Si un modo passe dans le coin pour fusionner/supprimer les posts qui bug Merci par avance !

    Le retour complet du 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
    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
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
     
    root@linux:~# ./switch.pl
    Line:
    Line: switch>terminal length 0
    Line: switch>enable
    Line: Password:
    Line: switch#sh interfaces counters
    Line:
    Line: Port            InOctets    InUcastPkts    InMcastPkts    InBcastPkts
    Line: Fa0/1           39253732          92339         155453           6176
    Key: Fa0/1
    InOctets => 39253732, InUcastPkts => 92339, InMcastPkts => 155453, InBcastPkts => 6176
    Line: Fa0/2        20467564400       20177433         241707          67765
    Key: Fa0/2
    InOctets => 20467564400, InUcastPkts => 20177433, InMcastPkts => 241707, InBcastPkts => 67765
    Line: Fa0/3          647715947        3363573             67           9078
    Key: Fa0/3
    InOctets => 647715947, InUcastPkts => 3363573, InMcastPkts => 67, InBcastPkts => 9078
    Line: Fa0/4         3807080861        8983259            300           4021
    Key: Fa0/4
    InOctets => 3807080861, InUcastPkts => 8983259, InMcastPkts => 300, InBcastPkts => 4021
    Line: Fa0/5          974816057        6462302            124            857
    Key: Fa0/5
    InOctets => 974816057, InUcastPkts => 6462302, InMcastPkts => 124, InBcastPkts => 857
    Line: Fa0/6          826395598        5430691             29           3818
    Key: Fa0/6
    InOctets => 826395598, InUcastPkts => 5430691, InMcastPkts => 29, InBcastPkts => 3818
    Line: Fa0/7         8546273127       30119310          76051          59256
    Key: Fa0/7
    InOctets => 8546273127, InUcastPkts => 30119310, InMcastPkts => 76051, InBcastPkts => 59256
    Line: Fa0/8         2188276369        9444083         218966         343299
    Key: Fa0/8
    InOctets => 2188276369, InUcastPkts => 9444083, InMcastPkts => 218966, InBcastPkts => 343299
    Line: Fa0/9         2091185870       18059430          31008         128012
    Key: Fa0/9
    InOctets => 2091185870, InUcastPkts => 18059430, InMcastPkts => 31008, InBcastPkts => 128012
    Line: Fa0/10           7811312          51421              6            192
    Key: Fa0/10
    InOctets => 7811312, InUcastPkts => 51421, InMcastPkts => 6, InBcastPkts => 192
    Line: Fa0/11        8056956788       13490370           5737         399811
    Key: Fa0/11
    InOctets => 8056956788, InUcastPkts => 13490370, InMcastPkts => 5737, InBcastPkts => 399811
    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            9489479          67575              5            211
    Key: Gi0/1
    InOctets => 9489479, InUcastPkts => 67575, InMcastPkts => 5, InBcastPkts => 211
    Line: Gi0/2        25937918634       99765547        5933964       11559467
    Key: Gi0/2
    InOctets => 25937918634, InUcastPkts => 99765547, InMcastPkts => 5933964, InBcastPkts => 11559467
    Line:
    Line: Port           OutOctets   OutUcastPkts   OutMcastPkts   OutBcastPkts
    Line: Fa0/1         1480324426         231480        6479043       12570594
    Key: Fa0/1
    OutOctets => 1480324426, OutUcastPkts => 231480, OutMcastPkts => 6479043, OutBcastPkts => 12570594
    Line: Fa0/2         3333316861       12754003        6386091       12507993
    Key: Fa0/2
    OutOctets => 3333316861, OutUcastPkts => 12754003, OutMcastPkts => 6386091, OutBcastPkts => 12507993
    Line: Fa0/3         1671999116        3451456        6628124       12567836
    Key: Fa0/3
    OutOctets => 1671999116, OutUcastPkts => 3451456, OutMcastPkts => 6628124, OutBcastPkts => 12567836
    Line: Fa0/4         4347727969        8593467        6627757       12571364
    Key: Fa0/4
    OutOctets => 4347727969, OutUcastPkts => 8593467, OutMcastPkts => 6627757, OutBcastPkts => 12571364
    Line: Fa0/5         2317539616        6706239        5793885       10821290
    Key: Fa0/5
    OutOctets => 2317539616, OutUcastPkts => 6706239, OutMcastPkts => 5793885, OutBcastPkts => 10821290
    Line: Fa0/6         1784243367        5565651        5794009       10819358
    Key: Fa0/6
    OutOctets => 1784243367, OutUcastPkts => 5565651, OutMcastPkts => 5794009, OutBcastPkts => 10819358
    Line: Fa0/7         8197576063       29848069        5724005       10763354
    Key: Fa0/7
    OutOctets => 8197576063, OutUcastPkts => 29848069, OutMcastPkts => 5724005, OutBcastPkts => 10763354
    Line: Fa0/8         2686291418        8906272        5580244       10478485
    Key: Fa0/8
    OutOctets => 2686291418, OutUcastPkts => 8906272, OutMcastPkts => 5580244, OutBcastPkts => 10478485
    Line: Fa0/9         4039435207       19735930        6594086       12441316
    Key: Fa0/9
    OutOctets => 4039435207, OutUcastPkts => 19735930, OutMcastPkts => 6594086, OutBcastPkts => 12441316
    Line: Fa0/10        1203548361         125419        5793976       10822751
    Key: Fa0/10
    OutOctets => 1203548361, OutUcastPkts => 125419, OutMcastPkts => 5793976, OutBcastPkts => 10822751
    Line: Fa0/11        9669347421       13021913        6622747       12177007
    Key: Fa0/11
    OutOctets => 9669347421, OutUcastPkts => 13021913, OutMcastPkts => 6622747, OutBcastPkts => 12177007
    Line: Fa0/12        1197085724          76475        5789771       10810789
    Key: Fa0/12
    OutOctets => 1197085724, OutUcastPkts => 76475, OutMcastPkts => 5789771, OutBcastPkts => 10810789
    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         1204106253         136825        5794024       10822465
    Key: Gi0/1
    OutOctets => 1204106253, OutUcastPkts => 136825, OutMcastPkts => 5794024, OutBcastPkts => 10822465
    Line: Gi0/2        46714074771      108015868        1288147        1017341
    Key: Gi0/2
    OutOctets => 46714074771, OutUcastPkts => 108015868, OutMcastPkts => 1288147, OutBcastPkts => 1017341
    Line: switch#
    Key: switch#
    Use of uninitialized value in concatenation (.) or string at ./switch.pl line 43.
    Use of uninitialized value in concatenation (.) or string at ./switch.pl line 43.
    Use of uninitialized value in concatenation (.) or string at ./switch.pl line 43.
    Use of uninitialized value in concatenation (.) or string at ./switch.pl line 43.
    OutOctets => , OutUcastPkts => , OutMcastPkts => , OutBcastPkts =>
    Use of uninitialized value in say at ./switch.pl line 49.
    Key Gi0/2, InOctets:
    root@linux:~#

  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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Essaye ce script (sans le modifier) et dit moi s'il retourne bien la donnée.
    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
    #!/usr/bin/perl
     
    use strict;
    use warnings;
     
    use feature qw(:5.10);
    use List::MoreUtils qw(pairwise);
     
    my @ssh_return = split /\n/, <<'DATA';
    Port InOctets InUcastPkts InMcastPkts InBcastPkts
    Fa0/1           38994637          92150         154264           6155
    Fa0/2        19954317931       19765110         238797          67376
    Fa0/3          642615699        3337962             67           9014
    Fa0/4         3796890138        8923787            300           4019
    Fa0/5          959937874        6393942            124            857
    Fa0/6          812098430        5375191             29           3754
    Fa0/7         8256991805       29393309          75399          58599
    Fa0/8         2176240651        9350819         216918         340325
    Fa0/9         2075684972       17924520          30777         127927
    Fa0/10           7802935          51324              6            192
    Fa0/11        8007316370       13391384           5731         396084
    Fa0/12                 0              0              0              0
    Fa0/13                 0              0              0              0
    Fa0/14        1124993080         856145             74              3
    Fa0/15                 0              0              0              0
    Fa0/16                 0              0              0              0
    Fa0/17                 0              0              0              0
    Fa0/18                 0              0              0              0
    Fa0/19         126086300         493401              6            141
    Fa0/20                 0              0              0              0
    Fa0/21                 0              0              0              0
    Fa0/22                 0              0              0              0
    Fa0/23                 0              0              0              0
    Fa0/24                 0              0              0              0
    Gi0/1            9478722          67443              5            211
    Gi0/2        25672520800       98456525        5889156       11489217
    Fa0/1         1471057948         231057        6428386       12492382
    Fa0/2         3300583785       12579155        6337169       12430149
    Fa0/3         1660232495        3424087        6576292       12489667
    Fa0/4         4323141858        8532958        6575925       12493133
    Fa0/5         2295388064        6628514        5742053       10743057
    Fa0/6         1767570595        5510232        5742177       10741189
    Fa0/7         8064674506       29183302        5672825       10685778
    Fa0/8         2666804181        8814211        5530460       10403226
    Fa0/9         4000883484       19562089        6542485       12363168
    Fa0/10        1194122197         125133        5742144       10744518
    Fa0/11        9594971440       12912028        6570921       12102501
    Fa0/12        1187665637          76272        5737939       10732556
    Fa0/13                 0              0              0              0
    Fa0/14         367894640         498134            734           1629
    Fa0/15                 0              0              0              0
    Fa0/16                 0              0              0              0
    Fa0/17                 0              0              0              0
    Fa0/18                 0              0              0              0
    Fa0/19         215398333         460039         829752        1739535
    Fa0/20                 0              0              0              0
    Fa0/21                 0              0              0              0
    Fa0/22                 0              0              0              0
    Fa0/23                 0              0              0              0
    Fa0/24                 0              0              0              0
    Gi0/1         1194675529         136471        5742192       10744232
    Gi0/2        45821456611      106466935        1276493        1009358
    switch#
    DATA
     
    my %var;
    our ($a, $b);
     
    my @col_names;
    foreach my $line (@ssh_return) {
      chomp $line;
      if ($line =~ /^Port/) {
        @col_names = split /\s+/, $line;
        shift @col_names;
      }
      else {
        if (my @col_values = split /\s+/, $line) {
          my $key = shift @col_values;
          $var{$key} = { pairwise { $a => $b } @col_names, @col_values } if defined $key && @col_values;
        }
      }
    }
     
    say "Key Gi0/2, InOctets: ", $var{"Gi0/2"}->{"InOctets"};
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Points : 48
    Points
    48
    Par défaut
    Oui, ton script retourne bien la donnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Key Gi0/2, InOctets: 45821456611

  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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Donc à présent, part du mon script et modifie cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach my $line (@ssh_return) {
    pour l'adapter au retour de ta commande ssh, sans rien changer ailleurs.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Points : 48
    Points
    48
    Par défaut
    Non cela ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Use of uninitialized value in say at ./test.pl line 46.
    Key Gi0/2, InOctets:
    j'ai modifié pour récupérer le channel SSH en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    foreach my $line($chan2) {

  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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Montre le début du script jusqu'à cette ligne, car cette ligne est de toute façon erronée.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Points : 48
    Points
    48
    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
     
    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 @ssh_return = split /\n/,<$chan2>;
     
    my %var;
    our ($a, $b);
     
    my @col_names;
    foreach my $line($chan2) {

  8. #8
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Tu devrais sans doute écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach my $line(<$chan2>) {
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach my $line($chan2) {
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Points : 48
    Points
    48
    Par défaut
    Toujours la fameuse erreur anonymous hash :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Use of uninitialized value in anonymous hash ({}) at ./test.pl line 42.
    Use of uninitialized value in anonymous hash ({}) at ./test.pl line 42.
    Use of uninitialized value in anonymous hash ({}) at ./test.pl line 42.
    Use of uninitialized value in anonymous hash ({}) at ./test.pl line 42.
    Use of uninitialized value in say at ./test.pl line 47.
    Key Gi0/2, InOctets:

  10. #10
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Les erreurs en ligne 42 ne devraient pas être importante (et pourrons être traitées après avoir corrigé le problème principal) : elles sont sans doute dues aux lignes qui ne contiennent pas de données.

    Pour ton problème, je ne vois qu'une solution : passer en mode debug :

    place un breakpoint en ligne 47

    et affiche les infos suivantes :

    Montre moi le résultat de la dernière commande.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Points : 48
    Points
    48
    Par défaut
    Debug sur la ligne 47 :

    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
     
      DB<1> n
    main::(test.pl:47):      say "Key Gi0/2, InOctets: ", $var{"Gi0/2"}->{"InOctets"}                                                                                                                                                             ;
      DB<1> b 47
      DB<2> x keys %var
    0  'Fa0/14'
    1  'Fa0/8'
    2  'Fa0/13'
    3  'Fa0/21'
    4  'Fa0/15'
    5  'Fa0/12'
    6  'Gi0/1'
    7  'Fa0/16'
    8  'Fa0/24'
    9  'Fa0/17'
    10  'Fa0/23'
    11  'Fa0/11'
    12  'Fa0/3'
    13  'Fa0/5'
    14  'Fa0/6'
    15  'Fa0/2'
    16  'Fa0/1'
    17  'switch#sh'
    18  'Fa0/7'
    19  'Gi0/2'
    20  'Fa0/22'
    21  'Fa0/19'
    22  'Fa0/4'
    23  'switch>terminal'
    24  'Fa0/10'
    25  'Fa0/9'
    26  'Fa0/20'
    27  'Fa0/18'
      DB<3>

  12. #12
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    A la suite de ça, affiche ceci :
    Dans les clés enregistrées, je constate qu'il y a des lignes retournées par ta commande ssh qui ne contiennent pas de données, il faudra soit les filtrer, soit les prendre en compte si elles contiennent des informations utiles.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  13. #13
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Points : 48
    Points
    48
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      DB<3> x $var{"Gi0/1"}
    0  HASH(0x20318e0)
       'OutBcastPkts' => 10954560
       'OutMcastPkts' => 5859158
       'OutOctets' => 1218120061
       'OutUcastPkts' => 137350
    Il retourne bien le OUT mais pas le IN

    Dans les clés enregistrées, je constate qu'il y a des lignes retournées par ta commande ssh qui ne contiennent pas de données, il faudra soit les filtrer, soit les prendre en compte si elles contiennent des informations utiles.
    Tu parles peut être des clés suivante ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    17  'switch#sh'
    23  'switch>terminal'
    D'ailleur je ne sais pas trop d'ou elles sortent ! Elles peuvent être ignorées !

  14. #14
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Citation Envoyé par seb-65 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      DB<3> x $var{"Gi0/1"}
    0  HASH(0x20318e0)
       'OutBcastPkts' => 10954560
       'OutMcastPkts' => 5859158
       'OutOctets' => 1218120061
       'OutUcastPkts' => 137350
    Il retourne bien le OUT mais pas le IN
    Je crois que j'ai trouvé : lorsque les IN sont trouvés, ils sont mis dans $var{clé}, puis, quand les OUT sont trouvés, ils sont mis dans $var{clé}, mais sans conserver les anciens.

    Pour corriger, modifie cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          $var{$key} = { pairwise { $a => $b } @col_names, @col_values } if defined $key && @col_values;
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          $var{$key} = { $var{$key} ? %{$var{$key}} : (), pairwise { $a => $b } @col_names, @col_values } if defined $key && @col_values;
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  15. #15
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Points : 48
    Points
    48
    Par défaut
    héhé

    Merci Philou67430, cela fonctionne (IN & OUT):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Use of uninitialized value in anonymous hash ({}) at ./test.pl line 42.
    Use of uninitialized value in anonymous hash ({}) at ./test.pl line 42.
    Use of uninitialized value in anonymous hash ({}) at ./test.pl line 42.
    Use of uninitialized value in anonymous hash ({}) at ./test.pl line 42.
    Key Gi0/2, InOctets: 26255169324
    Key Gi0/2, OutOctets: 47974043361
    Par contre pour les erreurs en ligne 42 est-ce qu'elles peuvent se corriger ou cela n'est pas gênant ?

  16. #16
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Il est normalement possible de corriger l'erreur en identifiant une ligne qui ne contient pas de données. Pour cela, le test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... if defined $key && @col_values;
    opère déjà une partie du filtrage, et si cette ligne est bien écrite de cette façon dans ton script, elle doit être incomplète.

    Pourrais-tu poster à nouveau la totalité de ton script actuel ?
    Avec les données que j'ai pu collectée de ce que ton ssh retourne, je n'ai de mon coté plus aucune erreur ou warning.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/03/2015, 14h48
  2. [SUITE] récupérer valeurs dans variables
    Par seb-65 dans le forum Programmation et administration système
    Réponses: 14
    Dernier message: 28/03/2012, 17h35
  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