Leser: 1
6 Einträge, 1 Seite |
1
2
3
4
5
6
7
8
9
10
11
12
ich habe den folgende Array in meine Code:
my @Routerlist =(
[ qw/1 router3 10.100.2.99 admin router/ ],
[ qw/2 router9 10.100.2.105 admin router/ ],
);
for my $Router ( @Routerlist ) {
get_Router ( @{ $Router} );
}
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
Gesamte code
use strict;
use warnings;
use DBI;
use Net::Telnet::Cisco;
use Digest::MD5;
our $dbh;
open(DAT, '<','../gate_common/MySQLAccount.txt') or die"Could not open SQL-Data-file!";
$raw_data=<DAT>;
close(DAT);
chomp $raw_data;
my ($host,$user,$pass,$db) = split(/:/, $raw_data);
print "host ".$host."\n"."user ".$user."\n"."pass ".$pass."\n"."db ".$db."\n";
$dbh = DBI->connect("DBI:mysql:".$db.":".$host,$user,$pass) or die "Connect Error: $DBI::errstr()\n";
my @Routerlist =(
[ qw/1 router3 10.100.2.99 admin router/ ],
[ qw/2 router9 10.100.2.105 admin router/ ],
);
for my $cisco ( @ciscolist ) {
get_Router( @{ $cisco } );
}
$dbh->disconnect;
sub get_Router
{
my $dbh;
my $neid=shift;
my $ip=shift;
my $user=shift;
my $pwd=shift;
my ($query,$sth,$sth1,$execu,$newdata,$ds, $datarefid);
$query="INSERT INTO DATEN(ID,Type,Name,Address,Referenz,Data_RefIerenz,User_ID) VALUES ('',2,'???','$ip',$neid,0,0)";
$sth = $dbh->prepare($query) or die "Querry Error prepare: $DBI::errstr\n";
$ds = $sth->execute or die "Querry Error execute: $DBI::errstr\n";
$datarefid = $dbh->{'mysql_insertid'};
$sth->finish();
}
1
2
3
4
5
6
7
8
9
10
11
12
sub get_Router
{
my ($neid,$name,$ip,$user,$pwd) = @_;
my $dbh;
my ($query,$sth,$sth1,$execu,$newdata,$ds, $datarefid);
$query="INSERT INTO DATEN(ID,Type,Name,Address,Referenz,Data_RefIerenz,User_ID) VALUES ('',2,?,?,?,0,0)";
$sth = $dbh->prepare($query) or die "Querry Error prepare: $DBI::errstr\n";
$ds = $sth->execute($name,$ip,$neid) or die "Querry Error execute: $DBI::errstr\n";
$datarefid = $dbh->{'mysql_insertid'};
$sth->finish();
}
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
use strict;
use warnings;
use DBI;
use Net::Telnet::Cisco;
use Digest::MD5;
our $dbh;
open(DAT, '<','../gate_common/MySQLAccount.txt') or die"Could not open SQL-Data-file!";
$raw_data=<DAT>;
close(DAT);
chomp $raw_data;
my ($host,$user,$pass,$db) = split(/:/, $raw_data);
print "host ".$host."\n"."user ".$user."\n"."pass ".$pass."\n"."db ".$db."\n";
$dbh = DBI->connect("DBI:mysql:".$db.":".$host,$user,$pass) or die "Connect Error: $DBI::errstr()\n";
my @Routerlist =(
[ qw/1 router3 10.100.2.99 admin router/ ],
[ qw/2 router9 10.100.2.105 admin router/ ],
);
for my $cisco ( @ciscolist ) {
get_Router( @{ $cisco } );
}
$dbh->disconnect;
sub get_Router
{
my ($neid,$name,$ip,$user,$pwd) = @_;
my ($query,$sth,$sth1,$execu,$newdata,$ds, $datarefid);
if (!$loggedin)
{
eval
{
print "$stext:Try connecting via telnet...\n";
$session = Net::Telnet::Cisco->new(-Timeout => 10);
$session->open($ip);
$session->login($user,$pwd);
$loggedin=1;
};
if ($@) # Ist ein Fehler aufgetreten
{
$session->close;
print "Router nicht erreichbar/kann nicht einloggen \n";
$query="SELECT ID, ASTATE, RefID FROM STATE WHERE NEID='$neid' ORDER BY DESC LIMIT 1";
$sth = $dbh->prepare($query) or die "Querry Error prepare: $DBI::errstr\n";
$sth->execute or die "Querry Error execute: $DBI::errstr\n";
if ($Astate )
{$sth->finish;
$loggedin=0;
}
if ($loggedin)
{
$query="INSERT INTO DATEN(ID,Type,Name,Address,Referenz,Data_RefIerenz,User_ID) VALUES ('',2,'','$ip',$neid,0,0)";
$sth = $dbh->prepare($query) or die "Querry Error prepare: $DBI::errstr\n";
$ds = $sth->execute or die "Querry Error execute: $DBI::errstr\n";
$datarefid = $dbh->{'mysql_insertid'};
$sth->finish();
}
Mit der Lösung von Renne Bekomme ich ein fehler in der Folgende Zeile : """if ($@) # Ist ein Fehler aufgetreten ""
------> ein fehler beim connection war
und die fehller in meinem COde HAbe ich genau bekommen nach der Neue Lösung von " RENEE".
Kann mich jemand helfen ob das fehler an Folgendes liegt:
"my ($neid,$name,$ip,$user,$pwd) = @_;"
1
2
3
4
5
6
router3-2926:Try connecting via telnet...
Router nicht erreichbar/kann nicht einloggen
Can't call method "prepare" on an undefined value at ./test.pl line 109.
Line 109:
ist damit folgendes gemeint:
"$sth = $dbh->prepare($query) or die "Querry Error prepare: $DBI::errstr\n";"
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
Hier ist noch mal mein Code Ohne " RENNE" Lösung
use strict;
use warnings;
use DBI;
use Net::Telnet::Cisco;
use Digest::MD5;
our $dbh;
open(DAT, '<','../gate_common/MySQLAccount.txt') or die"Could not open SQL-Data-file!";
$raw_data=<DAT>;
close(DAT);
chomp $raw_data;
my ($host,$user,$pass,$db) = split(/:/, $raw_data);
print "host ".$host."\n"."user ".$user."\n"."pass ".$pass."\n"."db ".$db."\n";
$dbh = DBI->connect("DBI:mysql:".$db.":".$host,$user,$pass) or die "Connect Error: $DBI::errstr()\n";
my @Routerlist =(
[ qw/1 router3 10.100.2.99 admin router/ ],
[ qw/2 router9 10.100.2.105 admin router/ ],
);
for my $cisco ( @ciscolist ) {
get_Router( @{ $cisco } );
}
$dbh->disconnect;
sub get_Router
{
my $neid=shift;
my $machine=shift;
my $ip=shift;
my $user=shift;
my $pwd=shift;
my ($query,$sth,$sth1,$execu,$newdata,$ds, $datarefid);
if (!$loggedin)
{
eval
{
print "$stext:Try connecting via telnet...\n";
$session = Net::Telnet::Cisco->new(-Timeout => 10);
$session->open($ip);
$session->login($user,$pwd);
$loggedin=1;
};
if ($@) # Ist ein Fehler aufgetreten
{
$session->close;
print "Router nicht erreichbar/kann nicht einloggen \n";
$query="SELECT ID, ASTATE, RefID FROM STATE WHERE NEID='$neid' ORDER BY DESC LIMIT 1";
$sth = $dbh->prepare($query) or die "Querry Error prepare: $DBI::errstr\n";
$sth->execute or die "Querry Error execute: $DBI::errstr\n";
if ($Astate )
{$sth->finish;
$loggedin=0;
}
if ($loggedin)
{
$query="INSERT INTO DATEN(ID,Type,Name,Address,Referenz,Data_RefIerenz,User_ID) VALUES ('',2,'','$ip',$neid,0,0)";
$sth = $dbh->prepare($query) or die "Querry Error prepare: $DBI::errstr\n";
$ds = $sth->execute or die "Querry Error execute: $DBI::errstr\n";
$datarefid = $dbh->{'mysql_insertid'};
$sth->finish();
}
1
2
3
4
5
6
7
8
9
10
my @Routerlist =(
[ qw/1 router3 10.100.2.99 admin router/ ],
[ qw/2 router9 10.100.2.105 admin router/ ],
);
for my $cisco ( @ciscolist ) {
get_Router( @{ $cisco } );
}
6 Einträge, 1 Seite |