を使ったプログラムを書いているのですNet::Telnet
が、41行目で使おうとすると$tel->cmd
エラーになります。
CoyoteBridge4000.pl 行 41 でコマンドがタイムアウトしました
コマンドは有効ですが、出力が大きいため、タイムアウトが発生したと思います。それを解決するにはどうすればよいですか?? タイムアウトを変更しようとしたため、問題は解決しません。
#!/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 ($@) {
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";