因使用snmp来监控远端服务器(linux系统),且数量较多,为了能高效的查看这些服务器上的snmp服务是否开启,特写如下脚本:
-
#!/usr/bin/perl -w
-
-
use strict;
-
use Net::SSH::Perl;
-
-
my ($myfile,$ssh,$line,@fields);
-
-
$myfile = "host_msg.txt";
-
open(FILE, "$myfile");
-
while($line = <FILE>){
-
chomp($line);
-
@fields = split(/\s+/, $line);
-
-
########################################################
-
# 检查主机是否可以远程登录。
-
# 如果主机不可以远程登录,则执行对下一个城市节点的访问
-
########################################################
-
eval{
-
$ssh = Net::SSH::Perl->new($fields[1]);
-
};
-
if($@){
-
print "$fields[0]:无法远程连接\n";
-
next;
-
};
-
-
#################################################################
-
# 执行远程登录
-
#################################################################
-
$ssh->login($fields[2],$fields[3]);
-
my ($stdout, $stderr, $exit) = $ssh->cmd("service snmpd status");
-
$ssh->cmd("exit");
-
if($stderr){
-
print "$fields[0]:ErrorCode:$exit\n";
-
print "ErrorMsg:$stderr";
-
} else {
-
print "$fields[0]:$stdout";
-
}
-
-
}
-
close(FILE);
阅读(1758) | 评论(0) | 转发(0) |