作者:oneoo
来源:oneoo’s 私家花园
当你手上管理着好几台服务器,需要及时获取这些服务器网络断开或死机的消息通知,那么手机短信通知将是最好的途径。这点小事情不需要开通什么SMS短信端口的 你只要注册一个 @139.com 邮箱即可,该邮箱带有手机短信通知功能(好像通过手机查看邮件内容是需要付费的 _-!! 但我只需知道 web 服务是否正常,就把服务器信息简单的写在标题即可)
使用 PHP 监测 web 服务 80 端口是否正常:
发送邮件的 class (smtp.txt),请自行修改文件名
<? include_once('smtp.php'); @ob_end_flush(); //请修改为自己的发信邮箱地址([email protected] _-!!,错误不明) $smtp = new smtp("smtp.163.com",25,true,"[email protected]" ,"***"); 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/r/nHost: oneoo.com/r/n/r/n"); $h .= @fgets($fs, 256); @fclose($fs);} if(strpos($h,'200') === false){ @touch("/tmp/check-$ip"); echo " Fail/n"; //请修改为自己的邮箱地址 $smtp -> sendmail( [email protected]', "[email protected]", "Yo!", "服务器 $ip 出现异常", $h, "TXT" ); return false; }else @unlink("/tmp/check-$ip"); echo " OK/n"; return true; } testServer('***.***.***.***'); testServer('***.***.***.***');//检测多个服务器 echo "Finish TEST!/n"; ?>
把该程序放在相对最稳定的服务器上,并设置 crontab 定时执行该程序 (如果还担心这台服务器不稳定,可以在其他服务器上也搞个监测程序
程序虽然是非常简单,但作用不小哦。我就是用这个方法来监测 Yo2 的服务器,服务器一出现无法访问,就能在 10 分钟内短信通知我了。
如果服务器没有 PHP 环境,也可以使用 perl 来写个
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论