perl实现检测服务器中的服务是否正常脚本分享
程序调用远端服务,为了确保可用性最好在使用前进行健康检测,将异常的服务排除。
#!/usr/bin/perl
#
usestrict;
useIO::Socket;
my@servers;
$servers[0]=['180.153.100.93',2222];
$servers[1]=['180.153.100.93',22];
$servers[2]=['180.153.100.93',80];
my$i=0;
my$interval=3;
my$count=int(60/$interval);
while($i<$count){
foreach(@servers){
if(fetch_server_status(@$_)){
print$$_[0].':'.$$_[1]."ok\n";
}else{
print$$_[0].':'.$$_[1]."bad\n";
}
}
$i++;
sleep$interval;
}
subfetch_server_status(){
my($ip,$port)=@_;
my$socket=IO::Socket::INET->new(
PeerAddr=>$ip,
PeerPort=>$port,
Timeout=>1,
);
if(!$socket){
return0;
}else{
return1;
}
$socket->close;
}