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
")};
}