<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'><div dir='ltr'>
各位高手,来帮帮我吧.<BR>
最近为了工作方便,写了一小段perl,结果现在有如下问题:<BR>
程序的目的是 telnet 到设备上,执行相应命令,将返回值,记录到xxxx.log文件中.<BR>
问题:<BR>
1.若所有设备都在线,则工作一切正常.如果有一台设备不在线,则整个程序都停掉了,只会生成前面在线设备的日志.<BR>
2.若密码在没有修改的情况下,一切正常,改了密码就会停掉整个程序.<BR>
我现在需要解决的是<BR>
1.判断是否可以telnet,如果不可以,写产生相应无法telnet的日志.<BR>
2.判断telnet是否成功,如果不成功则产生相应日志后,继续执行下面的程序.<BR>
 <BR>
程序代码如下:<BR>
#!/usr/bin/perl<BR>use 5.010;<BR>use Net::Telnet::Cisco;<BR>open (IPLIST,'<.\iplist.txt'); #iplist.txt是存放IP地址用的,格式为 1.1.1.1#2.2.2.2#3.3.3.3<BR>$ip = <IPLIST>;<BR>@ips = split '#',$ip; <BR>foreach $slog(@ips)<BR>{<BR>my $session = Net::Telnet::Cisco->new(Host => $slog);<BR>$session->login('','password');<BR>if($session->enable('enpassword'))<BR>{<BR>open(RZ,">$slog.log"); #用IP地址作为文件名,生成日志文件<BR>@clo = $session->cmd('show clock');<BR>@ver = $session->cmd('show ver');<BR>@iib = $session->cmd('show ip int brief');<BR>@log = $session->cmd('show logging');<BR>print RZ "show clock \n\n @clo \n";<BR>print RZ "show version \n\n @ver \n";<BR>print RZ "show ip int brief \n\n @iib \n";<BR>print RZ "show logging \n\n @log \n";<BR>}<BR>else<BR>{<BR>warn "Can't enable: " . $session->errmsg;<BR>}<BR>$session->close;<BR>close RZ;<BR>}<BR>close IPLIST;<BR>
麻烦大家给瞧一瞧吧,谢谢了<BR>                                       </div></body>
</html>