• perl 批量监控主机ping


    use HTTP::Date qw(time2iso str2time time2iso time2isoz);
    use Net::Ping;  
    use Socket;
    use Net::SMTP;
    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   = 'zhao.yangjian@163.com';
        my $mail_pwd    = 'xxxxxxxxxx';
        my $mail_server = 'smtp.163.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();
    };
    
    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.
    ");
          } else
            {
            open (B ,">>/home/scan/sbin/ping-z.log");
            print B ("$CurrTime---$host is lost.
    ")  ;
            send_mail('zhaoyangjian@xx.cn', "$host is lost");
            }; 
    }

  • 相关阅读:
    vuex 命名空间
    vue-touchjs
    Jackson最简单用法
    Bootstrap登录样式
    Left/Right/Inner Join用法和区别
    VS2015安装提示出现“安装包丢失或损坏”解决方法
    HTML之禁止输入文本
    jQuery之call()方法的使用
    jQuery操作cookie
    jQuery常用的查找Dom元素方法
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351619.html
Copyright © 2020-2023  润新知