Schrift
[thread]8793[/thread]

While Schleife: Durchsuchung mehrere IP Adressen (Seite 2)



<< |< 1 2 >| >> 15 Einträge, 2 Seiten
renee
 2007-02-27 16:17
#74635 #74635
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nochmal ein paar Anmerkungen:

*) Benutze bitte die ?-Schreibweise von CPAN:DBI
*) nach my @output fehlt ein Semikolon
*) Du hast jede Menge Variablen in der Sub, die nicht benötigt werden
*) Du hast immer noch nicht klar gemacht, woher die Daten kommen, die bestimmen, für welchen Router das UPDATE gemacht werden soll.

Kannst Du vielleicht in normalem Text beschreiben, was Du machen willst?
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/
Taulmarill
 2007-02-27 16:27
#74636 #74636
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Ich hab mal meine Glaskugel angeworfen, und die meint du willst eine for-Schleife.
Code: (dl )
1
2
3
4
5
6
7
8
my @router = (
[ qw/1 r1 20.100.2.100 router/ ],
[ qw/2 r2 20.100.2.99 router/ ],
[ qw/3 r3 20.100.2.80 router/ ],
);
for my $router ( @router ) {
getRouter ( @{ $router } );
}


hilft dir das weiter?

Bitte beachte auch die anderen Anmerkungen.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
nour
 2007-02-27 16:30
#74637 #74637
User since
2006-11-15
108 Artikel
BenutzerIn
[default_avatar]
*****) Du hast jede Menge Variablen in der Sub, die nicht benötigt werden


ich habe schon Klar erklärt dass was habe ich hier eingegeben ist nicht den Ganzen Code , weil mein code ist sehr lang , hier habe ich nur den teil meines codes der für meine frage notwendig ist gegeben.


Jetzt erkläre ich nur den ganze vom anfang an :

Ich arbeite an verschiedenen routers , auf jeder router loge ich mich ein und bekomme ich die configuration der router

Den ganze datein von der Router werden in eine Tabelle an der Datenbank eingetragen.

ich brauche in meine skript eine Schleife die mir die Routers die ich habe durchsucht und die daten jedes Router in der Datenbank einträgt(Id,Name.Ip und soweiter )

Es sollte so gemacht :

Code: (dl )
1
2
3
4
5
6
7
8
whlie(Alle routers){
-Konfogurations der router ermitteln
-DB-Abfrage
.....
update
insert

}



ich hoffe das jemand kann mich verstehen !!



Code: (dl )
1
2
3
4
5
6
7
8
9
die idee mit 
for (r1,r2,r3){
}

ist richtig aber ich muss auch die Ips und die NAmen der Routers auch betrachten !!!!



Danke
nour
 2007-02-28 10:05
#74638 #74638
User since
2006-11-15
108 Artikel
BenutzerIn
[default_avatar]
Guten Morgen,
ich könnte vielleicht gestern die Ganze Thema nicht so gut erklären!

Einfach vergessen wir die ganze sache und hier stelle ich mein Problem anhand eines Beispiel.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Beschreibung: Ein user will sich in 3 verschideenen Router Mit verschiedenen Ip's adressen und Unterschiedlichen Namen einloggen:

Hier sind die Daten für den Routers:

Router1: (R1,20.100.10.99)
Router2:( R2,20.200.30.80)
Router3:(R3,20.200.20.100)

für jeder Router Gibt es eine Bestimmte konfiguration"config"

Jetzt will der User Mittels eine schleife die Drei routers Durchsuchen und die COnfig von Jeder Router in der Tabelle Config eintragen:

Der SQL Statement für Insert:

$query="INSERT INTO Router_Config (ID,Name,IP,Config) VALUES ('','$name',$ip,$data)";
         $sth1 = $dbh->prepare($query) or die "Querry Error prepare: $DBI::errstr\n";
         $sth1->execute or die "Querry Error execute: $DBI::errstr\n";
         $sth->finish();
}


Danke
topeg
 2007-02-28 11:49
#74639 #74639
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Ich selbst habe keinen passenden Router um den Code zu testen.
Du must selbst enstschiden welche Daten du speichern willst.
Code (perl): (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
33
34
35
36
37
38
39
40
#!/usr/bin/perl

use strict;
use warnings;

use DBI;
use Net::Telnet::Cisco;

sub get_router_conf($)
{
  my $router=shift(@_); 
  my $session = Net::Telnet::Cisco-> new (Host  => $router->{ip});
  # Konfiguration lesen
  # keine Ahnung welche Daten du haben willst
  my @out = $session->cmd('show system:/running-config');
  return join("\n",@out);
}

my $host='192.168.0.1';
my $db='router';
my $user='ToPeG';
my $pass='getpo57';
my $dbistr="DBI:mysql:$db:$host";

my @routerlist=[
    {name=>'R1', ip=>'20.100.10.99'},
    {name=>'R2', ip=>'20.200.30.80'},
    {name=>'R3', ip=>'20.200.20.100'}
];

my $dbh = DBI->connect($dbistr,$user,$pass) or die $DBI::errstr();
my $query='INSERT INTO Router_Config (ID,Name,IP,Config) VALUES (?,?,?,?)';
my $sth = $dbh->prepare($query) or die $dbh->errstr();
for my $router (@routerlist)
{
  my $config=get_router_conf($router);
  $sth->execute('', $router->{name}, $router->{ip}, $config) or die $dbh->errstr();
}
$sth->finish() or die $dbh->errstr();
$dbh->disconnect();
\n\n

<!--EDIT|topeg|1172656668-->
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2007-02-27 14:15.