天天看點

PHP 腳本自動監控 Nginx 504錯誤

  1. #!/usr/bin/php
  2. <?php
  3. error_reporting(E_ERROR);
  4. define("EMAIL","[email protected]");//你的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. function check($d,$k){
  19.         $url = $d;//"http://".$d;
  20.         $html = curl_get($url);
  21.         if( substr_count($html,$k) &lt; 1){
  22.                 mail(EMAIL,"JP 504 timeout for ".$d,$html);
  23.                 exec("/etc/init.d/nginx restart "); //重新開機nginx
  24.                 exec("/etc/init.d/php-fpm restart");//重新開機php-fpm
  25.         }
  26. check("https://www.linuxidc.com","linuxidc.com");
  27. ?>

将該檔案命名為 504check.php

修改權限 chmod +x 504check.php

然後crontab -e添加一行

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

每分鐘系統就會自動檢測網站是否響應很慢,若如此,則重新開機。