监控ping

<pre name="code" class="sql">use HTTP::Date qw(time2iso str2time time2iso time2isoz);
use Net::Ping;  
use Socket;
my @array=( '10.5.129.243'); 
while (1==1){  
my $CurrTime = time2iso(time());  
        foreach $host (@array){  
        $p = Net::Ping->new("icmp");  
   $ip_addr=gethostbyname($host);
 eval{ $packed_ip_addr= inet_ntoa($ip_addr)};
  if ($p->ping($host,2)) {
        open (A, ">>ping.log");
print A ("$CurrTime---$packed_ip_addr is active.
")
} else
{
 open (B ,">>ping.log");
      
print B ("$CurrTime---$packed_ip_addr is lost.
") ;system("SMSsendx  18072722237 "$CurrTime--$packed_ip_addr is lost" 10.128.166.32" )


} 
 sleep(5)      
}} 

($p->ping($host,2))
这里的2秒 是指Ping的2秒延时

 平时使用ping的时候应该能注意到延时,这个就对应你说的超时,比如,一个ping的延时是2000ms,你设置超时为3s时,依然会告诉你能ping通,但是超时是2000ms;如果你设置超时为1s,那么就会告诉你超时了,主机不通



                                    
原文地址:https://www.cnblogs.com/hzcya1995/p/13351851.html