寶塔MySQL服務停止後自動重啟的監控功能
最近一直在深入的優化寶塔面板的運維服務,因為我們之前在寶塔面板上默認的服務都是每天每晚上單次的自動重啟,但是他有一個弊端就是你的MySQL遇到一些錯誤的時候,他是不能自動修復的,如果說你只是為一個寶塔面板的手動啟動是可以的,但是如果說你維護着五到10台,甚至更多的把它面板這個時候你就需要在計劃任務中設置一個監測MySQL服務停止之後可以自動重啟的任務。
目前這個操作我已經實測的運營了幾天,感覺還是蠻實用的,特別記錄下來分享給大家,如果你的寶面板在這方面有需要的話,可以按照我下面的步驟一步一步的去操作,至少目前互聯網上一些自動重啟的腳本測試過之後效果並沒有那麼好,具體不同的需求不同的操作方法吧,大家可以根據自己的具體情況來操作。
之前我也有想過通過監控通知的方式來提醒管理員重啟MySQL,但是實際用來說並不實用,因為如果你出現多個數據庫卡死的狀態,就算你的手工去重啟反應也是非常慢的,還不如直接用計劃任務來自動監控自動重啟,這才是完美的解決方案。
1. 創建檢測腳本
登錄服務器,創建一個Shell腳本(如 /root/mysql_monitor.sh
),內容如下:
#!/bin/bash
# 檢測MySQL是否運行
if ! systemctl is-active --quiet mysql; then
echo "[$(date +'%Y-%m-%d %H:%M:%S')] MySQL已停止,正在重啟..." >> /root/mysql_monitor.log
systemctl start mysql
fi
賦予腳本執行權限:
chmod +x /root/mysql_monitor.sh
2. 添加寶塔計劃任務
- 登錄寶塔面板 → 點擊左側「計劃任務」。
- 任務類型:選擇「Shell腳本」。
- 任務名稱:填寫「MySQL服務監控」。
- 執行周期:建議每分鐘檢測一次(選擇「每分鐘」)。
- 腳本內容:粘貼以下命令:
/root/mysql_monitor.sh
- 點擊「添加任務」保存。
3. 驗證腳本有效性
- 手動測試:
systemctl stop mysql # 停止MySQL /root/mysql_monitor.sh # 執行腳本 systemctl status mysql # 檢查是否啟動
- 查看日誌:
tail -f /root/mysql_monitor.log
注意事項
- 服務名稱:如果MySQL服務名不是
mysql
(如mysqld
),需修改腳本中的服務名稱。 - 執行權限:確保寶塔面板用戶(如
www
)有權限執行systemctl
命令。 - 頻率調整:若服務器負載敏感,可將檢測間隔設為5分鐘(寶塔面板選擇「每5分鐘」)。
通過上述步驟,即可實現MySQL服務停止後自動重啟的監控功能。
原創文章,作者:超哥,如若轉載,請註明出處:https://www.chaoneo.cn/zh-hant/archives/3767.html
如果您覺得超哥分享對您有所幫助的話,記得打賞給我😀