文章摘要
这篇文章描述了一个使用 Perl 编写的脚本,用于实时监控多个服务器的在线状态。脚本通过定义一个包含服务器 IP 地址和端口号的数组,并在固定的时间间隔内(如 3 秒)对这些服务器进行连接测试。通过使用 `IO::Socket` 库和 `fetch_server_status` 函数,脚本能够根据服务器连接的成功与否输出“ok”或“bad”,从而实现对服务器状态的实时监控。
 #!/usr/bin/perl
#
use strict;
use IO::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;
}
sub fetch_server_status(){
my($ip,$port)=@_;
my $socket=IO::Socket::INET->new(
PeerAddr=> $ip,
PeerPort=> $port,
Timeout=> 1,
);
if(!$socket){
return 0;
}else{
return 1;
}
$socket->close;
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。


