use IO::Socket; use HTTP::Date qw(time2iso str2time time2iso time2isoz); use Net::SMTP; ##监控8081 sub check_server_alive { ( $server,$port ) = @_; $sock = IO::Socket::INET->new(PeerAddr => $server,PeerPort => $port,Proto => 'tcp'); if (defined($sock)){return 1}else{return 100}; }; 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 = 'zhaoyangjian@zjcap.cn'; my $mail_pwd = 'xxxxx'; my $mail_server = 'smtp.exmail.qq.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(); }; $port=xxxx; @iplist1=('121.40.167.35','121.40.169.62','121.43.146.114','121.43.145.64'); foreach $host (@iplist1){ $result =check_server_alive($host,$port); if ($result == 1){print "host $host xxxx Could connect\n"} else {send_mail('zhaoyangjian@zjcap.cn',"host $host xxxx can't conenct\n")}; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。