程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php-fpm監控腳本示例

php-fpm監控腳本示例

編輯:PHP綜合

服務器的監控是很必要的,最近發現服務器有時候fastcgi會停止響應,為了讓他能正常工作(當發現停止的時候,就重新啟動),由於就有了下面的監控腳本。<本文轉自www.opsers.org,既然別人有寫,我就不費心寫了。>

該腳本的工作原理是:

通過curl命令訪問站點,當返回的狀態結果不是200時,重啟fastcgi。

由於站點首頁內容較多,為了減輕服務器的負擔,我們可以自己指定一個php頁面,頁面內容可以隨便寫一句php代碼,如:

< ?php echo "hello word!"; ?>

chkfastcgi.sh內容如下

#!/bin/bash

#監控的網頁地址

url="http://www.opsers.org/bash.php"

#fastcgi啟動/重啟/停止腳本路徑

PROG=/usr/local/php/sbin/php-fpm

#fastcgi重啟記錄日志文件

LOG=/var/log/php-fpm/restart.log

#返回結果正常記錄日志

LOG2=/var/log/php-fpm/check.log

#時間

time=`date`

#狀態檢查

status=$(curl -s --head "$url" | awk '/HTTP/ {print $2}')

#如果不是200,就寫入日志,然後重新啟動

if [ "$status" != "200" ]; then

echo "Restart php-cgi at ${time} " >> $LOG

$PROG restart

#如果你想發郵件,就在這個位置寫入發郵件命令吧

else

#記錄正常狀態的日志

echo "php cgi is running ${time} " >> $LOG2

# 如果想讓他什麼也不做的話,就把上面的“ echo "php cgi is running ${time} " >> $LOG2”

刪除,換成下面的冒號# :

fi

最後就是將腳本添加到任務計劃任務裡,每隔一段時間執行一次(記得加上執行權限啊),這個時間可以根據自己服務器情況,適當設置

*/1 * * * * /bin/bash /chkfastcgi.sh

最後提醒大家一點,系統中一定要有curl這個命令哦,否則,呵呵,你就哭吧!!為什麼呢?

是這樣的,如何你的系統中沒有curl這個命令,當然前面的腳本也就找不到200狀態,沒有這個狀態,就會重新啟動,試想一下,如果你設置每分鐘執行一次,那麼,你的服務也就每分鐘重新啟動一次了!!呵呵!!注意啊!!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved