【发布时间】:2015-11-21 13:07:05
【问题描述】:
我创建了一个远程登录到多个交换机的 perl。我想通过远程登录交换机来检查远程登录功能是否正常。
这是我远程登录到交换机的代码:
#!/usr/bin/perl
use warnings;
use Net::Cisco;
open( OUTPUT, ">log.txt" );
open( SWITCHIP, "ip.txt" ) or die "couldn't open ip.txt";
my $count = 0;
while (<SWITCHIP>) {
chomp($_);
my $switch = $_;
my $tl = 0;
my $t = Net::Telnet::Cisco->new(
Host => $switch,
Prompt =>
'/(?m:^(?:[\w.\/]+\:)?[\w.-]+\s?(?:\(config[^\)]*\))?\s?[\$#>]\s?(?:\(enable\))?\s*$)/',
Timeout => 5,
Errmode => 'return'
) or $tl = 1;
my @output = ();
if ( $tl != 1 ) {
print "$switch Telnet success\n";
}
else {
my $telnetstat = "Telnet Failed";
print "$switch $telnetstat\n";
}
close(OUTPUT);
$count++;
}
这是我测试 7 个开关后的输出状态:
10.xxx.3.17 Telnet success
10.xxx.10.12 Telnet success
10.xxx.136.10 Telnet success
10.xxx.136.12 Telnet success
10.xxx.188.188 Telnet Failed
10.xxx.136.13 Telnet success
我想将 telnet 结果转换为日志文件。
perl如何区分telnet成功和失败的结果?
【问题讨论】:
-
你为什么使用
@output和$count? -
请开启
use strict;——它和use warnings;一样重要。
标签: perl logging switch-statement telnet cisco