4
我正在編寫一個使用Net::Telnet
的程序,但是當我嘗試在第41行中使用$tel->cmd
時,發生錯誤。Perl Net :: Telnet在超大命令輸出時超時
命令超時在CoyoteBridge4000.pl線41
的COMAND是有效的,但產量大,這就是爲什麼我認爲發生超時。我能做些什麼來解決這個問題?由於我試圖改變超時時間,並沒有解決問題。
#!/usr/bin/perl
use Net::Telnet();
$tel = new Net::Telnet();
print "\nFile Name\n\n";
my $name = <>;
chomp $name;
my @equipament;
my $i = 0;
my $username = "admin";
my $passwd = "zhone";
my $certo = 0;
$co = "bridge show vlan 4000";
open(arquivo, "ip.txt");
my $i = 0;
while (<arquivo>) {
$equipament[$i] = $_;
chomp $equipament[$i];
$i++;
}
close(arquivo);
open(resp, ">$name.csv");
foreach (@equipament) {
eval { $tel->open($_); };
if ([email protected]) {
chomp $_;
print resp "$_, UNREACHABLE\n";
}
else {
open(re, ">temp.txt");
$tel->login($username, $passwd);
###ERROR###
@lines = $tel->cmd(String => "$co", Timeout => 600);
#####ERROR#####
print re @lines;
close(re);
open(re, "temp.txt");
$encontrar = ":";
while (<re>) {
if ($_ =~ /$encontrar/) {
chomp $_;
print resp $_;
}
}
close(re);
}
}
close(resp);
print "\n\n DONE \n\n";
程序在超時前等待十分鐘嗎? – Borodin 2013-02-15 21:11:07
問題解決了,這是一個設備問題 – user2076234 2013-02-27 12:28:09