当前位置:编程学习 > 网站相关 >>

@139.com 邮箱实现服务器监测通知

编外:这个可以作为第三方检测,如果运行该程序的服务器挂了,自然白搭了

作者:oneoo
来源:oneoos 私家花园

当你手上管理着好几台服务器,需要及时获取这些服务器网络断开或死机的消息通知,那么手机短信通知将是最好的途径。这点小事情不需要开通什么SMS短信端口的 你只要注册一个 @139.com 邮箱即可,该邮箱带有手机短信通知功能(好像通过手机查看邮件内容是需要付费的 _-!! 但我只需知道 web 服务是否正常,就把服务器信息简单的写在标题即可)

使用 PHP 监测 web 服务 80 端口是否正常:

发送邮件的 class (smtp.txt),请自行修改文件名

<?
include_once(smtp.php);
@ob_end_flush();
//请修改为自己的发信邮箱地址(用原来的@139.com邮箱无法发送成功 _-!!,错误不明)
$smtp = new smtp("smtp.163.com",25,true,"***@163.com" ,"***");
function testServer($ip){
// 如果服务器在1小时内出现过错误则跳过检测
if(file_exists("/tmp/check-$ip") && (time() - filemtime("/tmp/check-$ip")) < 3600)return false;
global $smtp;
$h = ;
echo "CHECK: $ip";
if($fs = @fsockopen($ip,80, $errno, $errstr, 10)){
@fwrite($fs, "GET / HTTP/1.0 Host: oneoo.com ");
$h .= @fgets($fs, 256);
@fclose($fs);}
if(strpos($h,200) === false){
@touch("/tmp/check-$ip");
echo " Fail ";
//请修改为自己的邮箱地址
$smtp -> sendmail( ***@139.com, "wesnet@163.com", "Yo!", "服务器 $ip 出现异常", $h, "TXT" );
return false;
}else @unlink("/tmp/check-$ip");
echo " OK ";
return true;
}
testServer(***.***.***.***);
testServer(***.***.***.***);//检测多个服务器
echo "Finish TEST! ";
?>
把该程序放在相对最稳定的服务器上,并设置 crontab 定时执行该程序 (如果还担心这台服务器不稳定,可以在其他服务器上也搞个监测程序

程序虽然是非常简单,但作用不小哦。我就是用这个方法来监测 Yo2 的服务器,服务器一出现无法访问,就能在 10 分钟内短信通知我了。

如果服务器没有 PHP 环境,也可以使用 perl 来写个

补充:综合编程 , 安全编程 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,