本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
這篇主題其實有點難歸類,到底要算是 Shell Script 還是要 VPS 呢?XD
看下圖表不難發現是一台頑強的 VPS ,每天辛勤工作都快過勞了。而事實上他還真的每天有些時候會突然罷工(ex: 備份時段、有猛爆請求發生!?)
身為一個興趣型小技工兼荷包守門人怎能在這時候說升級主機就升級?
於是,觀察發現都是 MySQL 受不了導致存取不到資料噴 50x 錯誤。(establishing a database connection)
#!/bin/bash
now="$(date +"%c")"
statuscode=`wget --spider -S "https://www.mxp.tw" 2>&1 | grep "HTTP/" | awk '{print $2}'`
if [ "$statuscode" != "200" ]
then
sudo lnmp restart
echo "restart in $now">>/home/mxp/crush_log.txt;
fi
Gist: link
使用上面這段 Shell Script 設定 Cronjob 每兩分鐘檢查一下網站回傳的狀態碼,確認是否正常,如果不是「200」就重開吧!
建議兩分鐘而不是每分鐘也還有一點是避免他在重開的時間檢查到不是200又再次觸發。(資料庫太肥也是困擾)
restart in Wed 30 Aug 2017 05:51:01 PM CST
restart in Thu 31 Aug 2017 01:30:01 AM CST
restart in Thu 31 Aug 2017 11:09:01 AM CST
restart in Thu 31 Aug 2017 11:21:01 AM CST
restart in Fri 01 Sep 2017 01:30:01 AM CST
恩... 才裝上兩天就重開這麼多次呢,辛苦了。(默)(應該不難看出來幾點開始全機備份吧?XD)
#VPS #HealthCheck #WebService #網站服務 #資料庫 #MySQL #WordPress #Error #establishing #Database #Connection
![[VPS] 自我檢查網站服務健康度與重新啟動服務](https://www.mxp.tw/wp-content/uploads/2017/09/21230875_1678369578900148_3926126614109437128_n.png)
- Powered by Mxp.TW -FB2WP-