PHP 脚本自动监控 Nginx 504错误

  1. #!/usr/bin/php

  2. <?php

  3. error_reporting(E_ERROR);

  4. define("EMAIL","lishilongk@163.com.com");//你的email地址

  5. define("TIMEOUT",5);//读取网站超时时间,5秒

  6. function curl_get($url){

  7.                 $curl = curl_init();

  8.                 curl_setopt($curl, CURLOPT_URL, $url);

  9.                 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

  10.                 curl_setopt($curl, CURLOPT_TIMEOUT, TIMEOUT);

  11.                 // Headers

  12.                 $headers = array();

  13.                 $headers[] = "Date: ".date('r');

  14.                 curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

  15.                 $Data = curl_exec($curl);

  16.                 return $Data ;

  17.  

  18. }

  19.  

  20. function check($d,$k){

  21.         $url = $d;//"http://".$d;

  22.         $html = curl_get($url);

  23.         if( substr_count($html,$k) &lt; 1){

  24.                 mail(EMAIL,"JP 504 timeout for ".$d,$html);

  25.                 exec("/etc/init.d/nginx restart "); //重启nginx

  26.                 exec("/etc/init.d/php-fpm restart");//重启php-fpm

  27.         }

  28. }

  29.  

  30. check("https://www.linuxidc.com","linuxidc.com");

  31. ?>

将该文件命名为 504check.php
修改权限 chmod +x 504check.php

然后crontab -e添加一行

* * * * * /xx/504check.php >/dev/null 2>&1

每分钟系统就会自动检测网站是否响应很慢,若如此,则重启。

上一篇:47数据库 的操作


下一篇:使用tornado模板引擎配合yaml构建nginx配置接口 [扩展saltstack]