• 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个参数
    ";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
    ";
        my $subject = "Subject: zjcap info
    ";
        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("
    
    ");
        $smtp->datasend("$message
    "); # 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
    "}
       else
    {send_mail('zhaoyangjian@zjcap.cn', "host $host xxxx can't conenct
    ")};
    }

  • 相关阅读:
    CentOS/RHEL 查看用户登陆信息
    PAM
    块存储
    ECS
    SQL 基础应用
    MySQL 基础管理
    MySQL 体系结构
    JSON对象
    设置dom节点属性的代码优化
    Ext框架下的元素拖动
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351440.html
Copyright © 2020-2023  润新知