- 论坛徽章:
- 0
|
本帖最后由 chz 于 2013-01-17 11:33 编辑
一个用php做shell脚本的例子,用于监控服务地址是否正常,还真和HTML,CSS,JS没半毛钱关系. - #!/bin/php
- <?php
- include_once(dirname(__FILE__).DIRECTORY_SEPARATOR."conf/globalVar.inc.php");
- include_once($PROJECT['libPath']."Debug.inc.php");
- include_once($PROJECT['libPath']."Logging.inc.php");
- include_once($PROJECT['libPath']."Snoopy.inc.php");
- include_once($PROJECT['libPath']."StringUtility.inc.php");
- include_once($PROJECT['libPath']."email.class.php");
- $smtpserver = "smtp.163.com"; // 用于发送邮件的SMTP服务器地址
- $smtpserverport = 25; // SMPT端口
- $smtpusermail = "xxx@163.com"; // 用于发送邮件的帐号
- $smtpmailto = "aa@aa.com,bb@bb.com"; // 接收警报邮件的邮箱,多个用,隔开
- $smtpmailcc = "cc@cc.com"; // 接受抄送警报邮件的邮箱
- $smtpuser = "xxx"; // 登录SMTP服务器的帐号
- $smtppass = "xxxPassword"; // 登录SMTP服务器的密码
- $mailtype = "HTML";
- $smtp = new smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass);
- $smtp->debug = false;
- $debug = new Debug();
- $debug->enable();
- set_time_limit(0);
- // 被监控的URL,放入数组中
- $URL = array(
- 'http://xxx.com/xxx.html',
- 'http://aaa.com/aaa.html',
- );
- for ($i=0; $i<sizeof($URL); $i++)
- {
- $snoopy = new Snoopy();
- $snoopy->fetch($URL[$i]);
- echo $URL[$i]."\t"."status:".$snoopy->status;
- echo "\t"."response code:".$snoopy->response_code;
- if($snoopy->response_code=='') echo "\n";
- if ($snoopy->status <> '200')
- {
- //$mailsubject = "SERR:".$URL[$i];
- $mailsubject = $URL[$i];
-
- $mailbody = "Status:".$snoopy->status."\n";
- $mailbody .= "http headers:\n";
- if(is_array($snoopy->headers)){
- foreach ($snoopy->headers as $key=>$value){
- $mailbody .= "\t [".$key."]=".$value;
- }
- }
- $mailbody .= "\n----\n";
- $mailbody .= "http results:\n";
- $mailbody .= $snoopy->results;
-
- $smtp->sendmail($smtpmailto, $smtpusermail, $mailsubject, $mailbody, $mailtype, $smtpmailcc);
- }
- }
- echo "----\n";
- logAndClear();
- ?>
复制代码 执行的方式- [chz@phenix ServerStatus]$ crontab -l
- 0,10,20,30,40,50 * * * * /home/chz/php/ServerStatus/ServerStatus.php&
复制代码 |
|