洛杉矶MC机房 高速低价18元起

尊云,给你尊贵体验!

使用 PHP 监控网站运行状态,宕机邮件提醒

提示:如果官网是英文页面,建议使用谷歌浏览器能同步翻译页面。点击下载【谷歌浏览器最新绿色便携版】
注意:部分文章发布时间较长,可能存在未知因素,购买时建议在本站搜索商家名称,先充分了解商家动态。
交流:唯一投稿QQ80059284、唯一投稿邮箱:admin@bkvps.com、网友交流QQ群号640669696。

如果有一个监控程序能够实时提醒运维进行修复,就可以把损失和影响控制到最小。

准备工作

  1. 准备一个邮箱用于接收提醒,最好是能及时 Push 到手机上的,比如 QQ 邮箱、126 邮箱、Gmail,如果是其他的邮箱也可以通过邮箱客户端软件使用 IMAP/POP3 来实现实时的邮件收取。
  2. 一台能够运行PHP脚本的服务器,需要能够执行定时任务(Cron Job)。

监控脚本

打开代码编辑器,新建一个文件,保存为 monitor.php ,这部分代码也很简单,就是两个函数,一个用于测试网页是否可以访问,另一个用于给你发送邮件通知。

function check($host, $find) {
    $fp = fsockopen($host, 80, $errno, $errstr, 10);
    if (!$fp) {
        echo "$errstr ($errno)\n";
    } else {
       $header = "GET / HTTP/1.1\r\n";
       $header .= "Host: $host\r\n";
       $header .= "Connection: close\r\n\r\n";
       fputs($fp, $header);
       while (!feof($fp)) {
           $str .= fgets($fp, 1024);
       }
       fclose($fp);
       return (strpos($str, $find) !== false);
    }
}

function alert($host) {
    mail('youremail@gmail.com', 'Monitoring', $host.' down');
}

$host = 'dearroy.com';
$find = '全球服务站';
if (!check($host, $find)) alert($host);

第一个函数 check(),需要传递两个参数:第一 $host 是你想要监控的网站(如:dearroy.com);第二个 $find 用于查找你的网站首页源代码中的一段字符串,其实添加这个的目的是出于安全考虑,如果你的首页包含这段字符串,说明你的网页没有被修改(如:被黑客恶意修改)。 如果你的网站无法访问或者安全字符串找不到,将会运行 alert() 函数,给你发送告警邮件。请确保你的监控主机可以正常使用PHP的发送邮件函数 mail(),否则将无法发送邮件,替代方法是使用 phpmailer。 好了,保存 monitor.php,并上传至你的监控服务器上。

设置一个计划任务

现在问题又来了,要想让 monitor.php 运行,我们得在浏览器中打开 http://yourdomain.com/monitor.php 才能检测服务器状态,不然的话再怎么监控也等于白搭。 解决这个问题的办法是使用计划任务(Cron Job),大多数虚拟主机都提供了这个功能,它可以在你设定的时刻自动地运行 PHP 脚本(例如每小时运行一次 monitor.php),关于计划任务的设定可根据各人的主机来设定,遇到问题可以联系主机的客服。

*/5 * * * * php -q /htdocs/www/monitor.php

About 贝壳

【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

本站链接:贝壳主机网 » 使用 PHP 监控网站运行状态,宕机邮件提醒

分享到: 生成海报
香港/美国/国内高速VPS
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活