Shell Script – 發現 Load Average 高自動執行指令

當系統的 Load Average 很高時, 可能面臨當機的風險, 遇到這個問題可以用 Shell Script 定時檢查系統的 Load Average, 當發現 Load Average 到達某一個設定好的數值時, 便自動執行一些指令, 例如重啟服務, kill process 或向系統管理員發出電郵通知等。

以下 Shell Script 會透過定時讀取 /proc/loadavg 的數值, 當發現 Load Average 高時 (以下設定為 5), 便會向系統管理員發出電郵通知, 同時會寫入 /var/log/loadavg.log 作紀錄, 另外也可以按自己的需要, 重新啟動服務 (如 httpd)。

首先建立 check-loadavg.sh 檔案, 並加入以下內容:

然後給予 check-loadavg.sh 執行權限:

# chmod +x check-loadavg.sh

最後將 check-loadavg.sh 加入 crontab, 每分鐘執行一次:

# crontab -e

加入以下一行:

* * * * * /path/to/check-loadavg.sh >/dev/null 2>&1



Leave a Reply