perl 监控端口

来源:互联网 发布:协作机器人 知乎 编辑:程序博客网 时间:2024/05/16 12:08
use IO::Socket;use HTTP::Date qw(time2iso str2time time2iso time2isoz);  use Net::SMTP;##监控8081sub 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;      $infoCONTENT    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")};}

0 0
原创粉丝点击