源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

PHP实现服务器状态监控的方法

  • 时间:2022-03-18 02:00 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP实现服务器状态监控的方法
本文实例讲述了PHP实现服务器状态监控的方法。分享给大家供大家参考。具体分析如下: PHP服务器状态监控对于很多朋友来讲都没做,只有看到网站挂了才知道,这种半夜网站关了是不知道情况了,对于网站也非常不好,为此这两天抽空写了个网页服务器状态监控,看到有朋友说需要,那我就放出来吧。很简单的东西。 使用方法: 打开压缩包里面的status.php文件。编辑这里的内容为你自己的邮箱信息。代码如下:
[u]复制代码[/u] 代码如下:
$mail->Host       = 'smtp.exmail.qq.com';      // SMTP 服务器 $mail->Port       = 25;   // SMTP服务器的端口号 $mail->Username   = 'admin@xxx.com';  // SMTP服务器用户名 $mail->Password   = 'password';            // SMTP服务器密码 $mail->SetFrom('admin@xxx.com','Status'); $mail->AddReplyTo('admin@xxx.com','Status'); $mail->Subject    = $subject; $mail->AltBody    = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test $mail->MsgHTML($body); $address = 'admin@admin.com';   //接收邮箱 //更改这里的内容为你要监控的IP: $server_ip_list = array( '61.135.169.121', '221.204.173.200', '173.194.127.83' );
然后访问你http://yourdomain.com/status.php文件,即可看到当前服务器状态并且自动发送邮件到你设置的邮箱。如果需要自动监控,请添加Cron任务或者使用什么监控宝之类的! 完整代码如下:
[u]复制代码[/u] 代码如下:
<?php /*  * 服务器状态监控  */ header('Content-type:text/html;charset=utf-8'); include './smtp/class.smtp.php'; include './smtp/class.phpmailer.php'; function sendmail($subject = '',$body = '') {     date_default_timezone_set('Asia/Shanghai');//设定时区东八区     $mail             = new PHPMailer(); //new一个PHPMailer对象出来     // $body            = eregi_replace("[]",'',$body); //对邮件内容进行必要的过滤     $mail->CharSet ="UTF-8";//设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码     $mail->IsSMTP(); // 设定使用SMTP服务     $mail->SMTPAuth   = true;                  // 启用 SMTP 验证功能     $mail->Host       = 'smtp.exmail.qq.com';      // SMTP 服务器     $mail->Port       = 25;   // SMTP服务器的端口号     $mail->Username   = 'admin@xxx.com';  // SMTP服务器用户名     $mail->Password   = 'password';            // SMTP服务器密码     $mail->SetFrom('admin@xxx.com','Status');     $mail->AddReplyTo('admin@xxx.com','Status');     $mail->Subject    = $subject;     $mail->AltBody    = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test     $mail->MsgHTML($body);     $address = 'admin@admin.com'; //接收邮箱     $mail->AddAddress($address, '');     //$mail->AddAttachment("images/phpmailer.gif");      // attachment  附件     //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment     if(!$mail->Send()) {         echo 'Mailer Error: ' . $mail->ErrorInfo;     } else {          // echo "Message sent!恭喜,邮件发送成功!";     } } //check server status function checkServerSatatus($ip) {  $str = null;  $fp = @fsockopen($ip,80,$errno,$errstr,10);  if (!$fp) {   return false;  } else {   fclose($fp);   return true;  } } $server_ip_list = array(        '61.135.169.121',        '221.204.173.200',        '173.194.127.83'       ); ?> <!doctype html> <html lang="zh_CN"> <head>  <meta charset="UTF-8">  <title>服务器状态监控</title>  <style>  * {   margin: 0px;   padding: 0px;  }  body {   font-family: "Microsoft yahei",Arial;   font-size:14px;  }  header {   height: 40px;   background-color: #2e2e2e;   width: 100%;   line-height: 35px;  }  header > h3 {   color: #fff;   margin-left: 20px;  }  footer {   text-align: center;  }  a {   color: #424242;   text-decoration: none;  }  .wrap {   height: auto;   zoom:1;   overflow: auto;   max-width: 500px;   width: 100%;   margin: 50px auto;  }  .table {   border-collapse: collapse;   border: 1px solid #eee;   width: 100%;  }  tr,td{   color: #424242;   border-collapse: collapse;   border: 1px solid #F0F0F0;   height: 30px;   text-align: center;  }  tr:nth-child(2n+1) {   background-color: #F7F8FC;  }  tr:hover {   background-color: #F7F8FC;  }  .online,.offline {   height: 20px;   background-color: #2ECC71;   width: 40px;   margin: 0px auto;   -webkit-border-radius: 5px;   -moz-border-radius: 5px;   border-radius: 5px;   color: #fff;  }  .offline {   width: 50px;   background-color: #E74C3C;  }  </style> </head> <body>  <header>   <h3>服务器在线状态监控</h3>  </header>  <div class="wrap">   <table class="table">    <tbody>     <tr><td>ID</td><td>Location</td><td>Address</td><td>Status</td></tr>     <?php      $i = 0;      foreach ($server_ip_list as $key => $val) {       $api = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$server_ip_list[$key].'');       $json = json_decode($api);       $result = $json->data;       $i++;       if (checkServerSatatus($server_ip_list[$key])) {        echo "<tr><td>{$i}</td><td>{$result->country}{$result->region}{$result->city}</td><td>{$server_ip_list[$key]}</td><td><div class="online">在线</div></td></tr>";       } else {        echo "<tr><td>{$i}</td><td>{$result->country}{$result->region}{$result->city}</td><td>{$server_ip_list[$key]}</td><td><div class="offline">不在线</div></td></tr>";        $subject = "您的服务器 {$server_ip_list[$key]} 无法访问!";        $body = "您的服务器{$server_ip_list[$key]} 无法访问,此邮件根据你设置的监控频率发送,当服务器恢复正常邮件自动停止发送!";        sendmail($subject,$body);       }      }      ?>    </tbody>   </table>  </div>   </body> </html>
注意: include './smtp/class.smtp.php'; include './smtp/class.phpmailer.php'; 文件可以下载phpmailer包然后我们在包里面这两个文件复制出来然后即可使用了。 ps:这个只是一个非常的简单的不能很好的监控到服务器了,现在有很多成熟的免费产品都可以更好的达到我们要求,如dnspod里面有一个D监控了,然后我们就可以操作。 希望本文所述对大家的PHP程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部