« 用Perl进行TCP端口确认 »
Developer » http://www.anysql.net/developer/perl_is_tcp_port_alive.html 2008-11-28某些服务都用TCP端口来标识, 因此第一步可以用端口是否活着来确定服务是否可用, 如Oracle的Listener等. 用Perl代码可以很方便地实现这一功能.
#
# isPortAlive
#
sub isPortAlive
{
my ($host,$port) = @_;
my $status = "???";
eval {
local $SIG{ALRM} = sub { die "???\n" }; # NB: \n required
alarm 10;
use IO::Socket;
my $sock = new IO::Socket::INET (
PeerAddr => $host,
PeerPort => $port,
Proto => 'tcp');
$status = "OK" if (defined($sock));
close ($sock);
alarm 0;
};
chomp($status);
scalar $status;
}
有些监控自已加强一下, 也未必是坏事.


Recent Comments