use HTTP::Date qw(time2iso str2time time2iso time2isoz);
use Net::Ping;
use Socket;
use Net::SMTP;
sub send_mail{
if (@_ != 2){print "请输入2个参数\n";exit 1};
($m,$n) = @_; #将参数赋值给变量
my $to_address = $m;
my $CurrTime = time2iso(time());
my $to_address = $m;
my $mail_user = 'zhao.yangjian@163.com';
my $mail_pwd = 'xxxxxxxxxx';
my $mail_server = 'smtp.163.com';
my $from = "From: $mail_user\n";
my $subject = "Subject: zjcap info\n";
my $info = "$CurrTime--$n";
my $message = <<CONTENT;
$info
CONTENT
my $smtp = Net::SMTP->new($mail_server);
$smtp->auth($mail_user, $mail_pwd) || die "Auth Error! $!";
$smtp->mail($mail_user);
$smtp->to($to_address);
$smtp->data(); # begin the data
$smtp->datasend($from); # set user
$smtp->datasend($subject); # set subject
$smtp->datasend("\n\n");
$smtp->datasend("$message\n"); # set content
$smtp->dataend();
$smtp->quit();
};
my @array=( '1.1.1.1',
'2.2.2.2'
);
my $CurrTime = time2iso(time());
foreach $host (@array){
$p = Net::Ping->new("icmp");
if ($p->ping($host,2))
{
open (A, ">>/home/scan/sbin/ping-z.log");
print A ("$CurrTime---$host is active.\n");
} else
{
open (B ,">>/home/scan/sbin/ping-z.log");
print B ("$CurrTime---$host is lost.\n") ;
send_mail('zhaoyangjian@xx.cn', "$host is lost");
};
}
perl 批量监控主机ping
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:perl 监控mysql数据库
下一篇:perl增量分析日志
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Zabbix通过ping监控主机主机是否在线
zabbix,ICMP,能ping通就可以监控
zabbix icmp 在线