微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

perl 监控端口

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 举报,一经查实,本站将立刻删除。

相关推荐