- 论坛徽章:
- 0
|
本帖最后由 zljjg2000 于 2016-08-02 17:13 编辑
谢谢楼上们的解答,现在程序修改后,报错变成了下面的信息:
程序修改后:
open(FILE,"<E:/设备中心/1-包机/2015-专线提取/$ARGV[0]")||die"cannot open the file: $!\n";
#程序执行时,手工输入sr.pl source-ne40e.txt;
#source-ne40e里存放着所有ne40e的ip地址清单;
open(EP,">>E:/设备中心/1-包机/2015-专线提取/result");
#将执行结果存放到result文件中
use Net::Telnet();
#引入Net::Telnet模块
$username="xxx";
$passwd="xxx";
while (<FILE>)
{
$line1=$_;
@list1=split(/\s+/,$line1);
$host=$list1[0];
$tishifu="/".$list1[1]."/"; ------------已将$tishifu修改了
#$host取出ne40e的ip地址
unlink "dest-ne40e.txt";
#删除程序运行前已经存在的老的dest-ne40e.txt;
my $t = new Net::Telnet ('Host'=>$host,Timeout => 10,Prompt => $tishifu,Output_Log=>"E:/设备中心/1-包机/2015-专线提取/Output_log.log");
$t->waitfor('Match'=>"/Username:/");
$t->print($username);
$t->waitfor('Match'=>"/ord:/");
$t->print($passwd);
$t->waitfor('Match'=>"/\>/");
$t->print("sys");
sleep(3);
$t->print("user-interface vty 0 4");
sleep(3);
$t->print("screen-length 0");
sleep(3);
my @lines=$t->cmd(String=>"disp arp interface Eth-Trunk 3.410"); --------第50行
print EP @lines;
print @lines;
$t->print("exit");
$t->print("screen-length 24");
$t->print("exit");
$t->close(); }
close FILE;
close EP;
close FP;
#关闭文件句柄
注:source-ne40e.txt文件里存放内容如下:
192.168.1.1 <NE40E-X16-S1>
192.168.1.2 <NE40E-X8-S1>
运行程序sr.pl source-ne40e.txt, 结果报错如下:
command timed-out at E:\设备中心\1-包机\2015-专线提取\sr.pl line 50
这是怎么回事啊?
若要将cmd换成print,那程序能通过,但是就无法将disp arp interface Eth-Trunk 3.410的命令结果保存下来了。
注:source-ne40e.txt文件里存放内容如下:
192.168.1.1 <NE40E-X16-S1>
192.168.1.2 <NE40E-X8-S1>
|
|