background image

如何利用 PHP 监控网站运行状态

网站无法访问意味着 RMB 的流失,对搜索引擎的蜘蛛也会有影响。所以,除了要随时随地掌握网站或
服务器的运行状态,当然,选择一个好的机房,好的服务器环境是必要的。
一个 php 函数即可搞定网站监控。使用手机短信提醒的前提:可以注册飞信的手机号两个,一个用来发

送,一个用来接收。移动号即可。
代码如下:

check.php
<?php
$fp = fsockopen("

www.9linux.com

§

", 80, $errno, $errstr, 30);

if (!$fp) {
$sms = @file_get_contents("

http://sms.api.bz/fetion.php?username

§

=[这里填写发送方手机号 ]& 

amp;password=[发送方飞信密码]&sendto=[接收方手机号(必须是发送方的飞信好友)]&message=
网站无法访问");
$content = date("F j, Y, g:i a")." Oops… \n";
file_put_contents('note.log',$content,FILE_APPEND);
}
?>   
不要使用 file_get_contents()来检测是否能访问网站,当网站被 D 时 file_get_contents()会长时间取不
到内容导致 PHP 超时,所以,建议使用 fsockopen,因为带超时参数,比如上例为 30 秒。如果网站无法
访问会在当前目录中的 note.log 写入时间并发送短信。
那么如何自动运行该 php 脚本呢.
很多方法,如果你没有服务器管理权限,那么你可以建立以下文件,只要开着该文件就可以了,至于为
什么不用 php 自动刷新而用 html 调用 ifame 刷新的原因很简单,只要 php 放在环境中,html 可以放你
本地目录当然也可以放在服务器上。

index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Server Status SMS Report</title>
<meta http-equiv="refresh" content="180">
</head>
<body>
<iframe   src="

http://sms.9linux.com/check.php

§

"   width="0"   align="center"   marginwidth="0" 

height="0" marginheight="0"scrolling="no" frameborder="0"></iframe>
</body>
</html>
这样即每三分钟(180s)检测一次。
如果你有服务器权限,win 可以制定任务计划,执行 php check.php
Linux 可以通过 crobjob

 

来执行计划任务 crontab -e

*/2 * * * * /usr/bin/php check.php
保存即可,这样每两分钟即检查一次。
如果你要发 email 也可以,自己改动下。感谢张宴大师提供的飞信 API。