服务器状态添加php,PHP实现服务器状态监控的方法

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

发布于 2015-10-29 12:28:15 | 136 次阅读 | 评论: 0 | 来源: 网友投递

PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。

这篇文章主要介绍了PHP实现服务器状态监控的方法,可实现对指定IP服务器状态的有效监控,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了PHP实现服务器状态监控的方法。分享给大家供大家参考。具体分析如下:

PHP服务器状态监控对于很多朋友来讲都没做,只有看到网站挂了才知道,这种半夜网站关了是不知道情况了,对于网站也非常不好,为此这两天抽空写了个网页服务器状态监控,看到有朋友说需要,那我就放出来吧。很简单的东西。

使用方法:

打开压缩包里面的status.php文件。编辑这里的内容为你自己的邮箱信息。代码如下:

代码如下:

$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任务或者使用什么监控宝之类的!

完整代码如下:

代码如下:

/*

* 服务器状态监控

*/

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'

);

?>

服务器状态监控

* {

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;

}

服务器在线状态监控

IDLocationAddressStatus

$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 "

{$i}{$result->country}{$result->region}{$result->city}{$server_ip_list[$key]}
在线
";

} else {

echo "

{$i}{$result->country}{$result->region}{$result->city}{$server_ip_list[$key]}
不在线
";

$subject = "您的服务器 {$server_ip_list[$key]} 无法访问!";

$body = "您的服务器{$server_ip_list[$key]} 无法访问,此邮件根据你设置的监控频率发送,当服务器恢复正常邮件自动停止发送!";

sendmail($subject,$body);

}

}

?>

注意:

include './smtp/class.smtp.php';

include './smtp/class.phpmailer.php';

文件可以下载phpmailer包然后我们在包里面这两个文件复制出来然后即可使用了。

ps:这个只是一个非常的简单的不能很好的监控到服务器了,现在有很多成熟的免费产品都可以更好的达到我们要求,如dnspod里面有一个D监控了,然后我们就可以操作。

相关阅读:

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

php实现统计邮件大小的方法

用PHP实现var_export函数功能的方法

php实现文件强制下载的方法

php实现网站插件机制的方法

PHP实现无限极分类的方法图文教程

PHP获取服务器端信息的方法

php实现mysql事务处理的方法

php实现简单文件下载的方法

PHP实现懒加载的方法

php实现浏览历史记录的方法

PHP实现通用alert函数的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值