Скрипт пингует серверы или узлы на наличие связи, но вот как проверить наличие например открытых портов? тоесть демон запустился и тд.#=============================================
#!/usr/bin/perl
use Net::Ping;
$p=Net::Ping->new("icmp",10);
my %retold = (
"192.168.0.1" => 1,
"192.168.0.2" => 1,
"192.168.0.2" => 1,
"192.168.0.3" => 1,
);
# ===============
Start:
while(($foo,$value) = each %retold){
print "$foo => $value ";
$ret = $p->ping ($foo);
if ($value == $ret)
{
print "Alles gut $foo, oldstatus:$value ping:$ret \n";
}
else
{
if ($ret == 0)
{
print "send $foo, oldstatus:$value ping:$ret\n";
$retold{$foo} = $ret;
}
else
{
print "$foo, oldstatus:$value ping:$ret\n";
$retold{$foo} = $ret;
}
&MailSend();
}
}
;
sleep 300;
goto Start;
# ++++++++++++++++++++++++++
sub MailSend()
{
open (MAIL, '|/usr/sbin/sendmail -t');
if ($ret == 0){ $mailbody = "PingLost:( ".$foo;} else { $mailbody = "PingUP:) ".$foo;}
print MAIL "From: admin@localhost\n",
"To: admin@localhost\n",
"Subject: ServerStatus\n\n",
$mailbody;
close MAIL
};