Schrift
[thread]8728[/thread]

Tabelle Teilen (Seite 2)



<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten
nour
 2007-02-06 14:24
#74067 #74067
User since
2006-11-15
108 Artikel
BenutzerIn
[default_avatar]
ich habe dich net verstanden !

Kann ich nicht die Spalte splittern ?

Grüße
renee
 2007-02-06 14:28
#74068 #74068
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
In dem Code, den Du oben gepostet hast, war noch nicht mein Lösungsvorschlag eingebaut...


Aber probier mal das hier:
Code: (dl )
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 -w
#DatenbankAbfragen

use strict;
use warnings;
use DBI;
use Net::Telnet::Cisco;

my $session = Net::Telnet::Cisco-> new (Host => '10.100.20.100);
$session->login('admin', 'name);

# Execute a command
my @output = $session->cmd('show run');
my $string = join '',@output;

my @infos = split /interface ATM/,$string;
#shift @infos;

my %hash;
for my $interface(@infos){
my ($bez) = $interface =~ /^([^\n]+)/;
my @data = $interface =~ /(pvc.*?cbr 128)/sg;
for my $daten(@data){
my ($id,$ip) = $pvc =~ /(\s*[\d\/]+).*?protocol ip ((?:\d{1,3}\.){3}\d{1,3})/s;
push @{$hash{'ATM'.$bez}}, [split(/\//,$id),$ip];
}
}

for my $atm(keys %hash){
print sprintf("%10s | %10s | %10s | %15s\n",$atm,'Daten1','Daten2','IP');
print sprintf("%10s | %10s | %10s | %15s\n",' ',@$_) for @{$hash{$atm}};
}
\n\n

<!--EDIT|renee|1170764934-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
nour
 2007-02-06 14:37
#74069 #74069
User since
2006-11-15
108 Artikel
BenutzerIn
[default_avatar]
Vieln Dank !

es hat geklappt

Danke noch mal !
nour
 2007-02-13 11:38
#74070 #74070
User since
2006-11-15
108 Artikel
BenutzerIn
[default_avatar]
Hallo ,

letzttes mal habe ich der folgende Schritt erreicht
Code: (dl )
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 -w
#DatenbankAbfragen

use strict;
use warnings;
use DBI;
use Net::Telnet::Cisco;

my $session = Net::Telnet::Cisco-> new (Host => '10.100.20.100);
$session->login('admin', 'name);

# Execute a command
my @output = $session->cmd('show run');
my $string = join '',@output;

my @infos = split /interface ATM/,$string;
#shift @infos;

my %hash;
for my $interface(@infos){
my ($bez) = $interface =~ /^([^\n]+)/;
my @data = $interface =~ /(pvc.*?cbr 128)/sg;
for my $daten(@data){
my ($id,$ip) = $pvc =~ /(\s*[\d\/]+).*?protocol ip ((?:\d{1,3}\.){3}\d{1,3})/s;
push @{$hash{'ATM'.$bez}}, [split(/\//,$id),$ip];
}
}

for my $atm(keys %hash){
print sprintf("%10s | %10s | %10s | %15s\n",$atm,'Daten1','Daten2','IP');
print sprintf("%10s | %10s | %10s | %15s\n",' ',@$_) for @{$hash{$atm}};
}


ich habe versucht in der Tabelle eine Neue Spalte cbr einzufügen die den Zahl 128 enthält .


Code: (dl )
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 -w
#DatenbankAbfragen

use strict;
use warnings;
use DBI;
use Net::Telnet::Cisco;

my $session = Net::Telnet::Cisco-> new (Host => '10.100.20.100);
$session->login('admin', 'name);

# Execute a command
my @output = $session->cmd('show run');
my $string = join '',@output;

my @infos = split /interface ATM/,$string;
#shift @infos;

my %hash;
for my $interface(@infos){
my ($bez) = $interface =~ /^([^\n]+)/;
my @data = $interface =~ /(pvc.*?cbr 128)/sg;
for my $daten(@data){
my ($id,$ip) = $pvc =~ /(\s*[\d\/]+).*?protocol ip ((?:\d{1,3}\.){3}\d{1,3})/s;
push @{$hash{'ATM'.$bez}}, [split(/\//,$id),$ip];
}
}

for my $atm(keys %hash){
print sprintf("%10s | %10s | %10s | %10s |%15s\n",$atm,'Daten1','Daten2','IP','cbr');
print sprintf("%10s | %10s | %10s | %10s |%15s\n",' ',@$_,'128') for @{$hash{$atm}};
}


mein Problem : ind dieser zeile in dem Code oben :" my @data = $interface =~ /(pvc.*?cbr 128)/sg;" es wurde cbr eingegeben ,

kann ich jetzt die Spalte " cbr" in meiner Tabelle einfügen sodass mein Skript trägt mir automatich die zahl 128 ohne dass einzugeben genau wie für die anderen Spalten "Daten1", "Daten2", "IP" .

danke im Vraus
renee
 2007-02-13 11:45
#74071 #74071
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
kannst Du das bitte genauer erläutern?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
nour
 2007-02-13 11:50
#74072 #74072
User since
2006-11-15
108 Artikel
BenutzerIn
[default_avatar]
ok mittels den code Oben bekomme ich folgendes :
Code: (dl )
1
2
3
4
5
 
Daten 1 | Daten2| IP | cbr
| 0 | 50 |192.168.121.212 |
0 | 100 |192.168.121.210 |


Der code liefert mir die Oberen ergebnisse nun jetzt will ich dass in der Tabelle Cbr auch daten geschrieben sind.
nour
 2007-02-13 13:17
#74073 #74073
User since
2006-11-15
108 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
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
#!/usr/bin/perl -w
#DatenbankAbfragen

use strict;
use warnings;
use DBI;
use Net::Telnet::Cisco;

my $session = Net::Telnet::Cisco-> new (Host => '10.100.20.100);
$session->login('admin', 'name);

# Execute a command
my @output = $session->cmd('show run');
my $string = join '',@output;

my @infos = split /interface ATM/,$string;
#shift @infos;

my %hash;
for my $interface(@infos){
my ($bez) = $interface =~ /^([^\n]+)/;
my @data = $interface =~ /(pvc.*?cbr 128)/sg;
for my $daten(@data){
my ($id,$ip) = $pvc =~ /(\s*[\d\/]+).*?protocol ip ((?:\d{1,3}\.){3}\d{1,3}).*?cbr/s;
push @{$hash{'ATM'.$bez}}, [split(/\//,$id),$ip];
}
}

for my $atm(keys %hash){
print sprintf("%10s | %10s | %10s | %10s |%15s\n",$atm,'Daten1','Daten2','IP','cbr');
print sprintf("%10s | %10s | %10s | %10s |%15s\n",' ',@$_,'') for @{$hash{$atm}};


ich habe der Coder gändert wie oben gezeigt :

An der Zeile " my ($id,$ip) = $pvc =~ /(\s*[\d\/]+).*?protocol ip ((?:\d{1,3}\.){3}\d{1,3}).*?cbr/s;" nun bekomme ich folgendes :

Code: (dl )
1
2
3
Daten 1   |        Daten2  |        IP             |            cbr
0| 50 |192.168.121.212 |
0 | 100 |192.168.121.210 |


Grüße
renee
 2007-02-13 13:26
#74074 #74074
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
for my $interface(@infos){
my ($bez) = $interface =~ /^([^\n]+)/;
my @data = $interface =~ /(pvc.*?cbr 128)/sg;
for my $daten(@data){
my ($id,$ip,$cbr) = $pvc =~ /(\s*[\d\/]+).*?protocol ip ((?:\d{1,3}\.){3}\d{1,3}).*?cbr\s*(\d+)/s;
push @{$hash{'ATM'.$bez}}, [split(/\//,$id),$ip,$cbr];
}
}

for my $atm(keys %hash){
print sprintf("%10s | %10s | %10s | %10s |%15s\n",$atm,'Daten1','Daten2','IP','cbr');
print sprintf("%10s | %10s | %10s | %10s |%15s\n",' ',@$_,'') for @{$hash{$atm}};
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
nour
 2007-02-13 13:34
#74075 #74075
User since
2006-11-15
108 Artikel
BenutzerIn
[default_avatar]
Danke Renne

aber cbr bekommt nicht nur 128 als Werte er nimmt auch die werte 512 und 300


und der obere skript zeigt mir nur die IPs von der Cbr 128.
nour
 2007-02-13 15:27
#74076 #74076
User since
2006-11-15
108 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich bekomme immer folgendes Fehler "Use of uninitialized value in sprintf " und zwar es liegt ab der "$cbr".
der Code sieht wie folgend aus !

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
for my $interface(@infos){
my ($bez) = $interface =~ /^([^\n]+)/;
my @data = $interface =~ /(pvc.*?cbr)/sg;
for my $daten(@data){
my ($id,$ip,$cbr) = $pvc =~ /(\s*[\d\/]+).*?protocol ip ((?:\d{1,3}\.){3}\d{1,3}).*?cbr\s*(\d+)/s;
push @{$hash{'ATM'.$bez}}, [split(/\//,$id),$ip,$cbr];
}
}

for my $atm(keys %hash){
print sprintf("%10s | %10s | %10s | %10s |%15s\n",$atm,'Daten1','Daten2','IP','cbr');
print sprintf("%10s | %10s | %10s | %10s |%15s\n",' ',@$_,'') for @{$hash{$atm}};
}


ich habe an cbr keine Bestimmte zahl gegeben, weil er nimmt eine reihe von Zahlen (128, 512, 300) je nach Ip adresse

Kann mich jemand helfen.

so dass ich in de spalte cbr alle zahlen bekommen 128, 512,300.

Danke im voraus
<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten



View all threads created 2007-02-06 11:59.