這篇主題其實有點難歸類,到底要算是 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

- Powered by Mxp.TW -FB2WP-

Facebook 外掛功能


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *