VPS 伺服器硬碟空間不足自動發送郵件通知腳本

VPS Disk Space Alert

VPS 用久了一時沒有察覺,硬碟不小心被撐爆了,MySQL 就馬上崩潰,整台主機也就 GG 了;前陣子 VPS 主機就發生這事兒,剛好看到 一介資男 在 Facebook 提供了硬碟空間不足自動發送郵件通知腳本,趕快做筆記。

一介資男部落格原文:[VPS] 伺服器空間使用量警示

這個腳本會用 mailgun api,所以先要有一個 mailgun domain 的帳號。

腳本內容:( 複製後貼上 Notepad++ ) 存成 disk_alarm.sh 檔名,請自行修改成你的 mailgun 內容。

#!/bin/bash

CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')

THRESHOLD=70

if [ "$CURRENT" -gt "$THRESHOLD" ] ; then

curl -s --user 'api:key-c0f4dd66a2f3b7ac13bd3333333333' https://api.mailgun.net/v3/ 你的域名 /messages -F from='域名 SMTP 帳號' -F to='收件人信箱' -F subject='主旨:你的哪一台 VPS server' -F text='伺服器硬碟使用率 '$CURRENT'% 過高!儘速通知相關人員~'

fi
THRESHOLD=70 是當硬碟空間到達 70% 時,就會寄信通知你,你也可以自行調整。
Advertisement

安裝腳本

上傳到腳本到 VPS 主機目錄 (/root)

給予執行權限:

chmod +x disk_alarm.sh

開一個目錄存放腳本:

sudo mkdir -p /opt/disk-alarm
sudo mv disk_alarm.sh /opt/disk-alarm/

測試執行腳本:

sudo /opt/disk-alarm/disk_alarm.sh

如果出現錯誤如下

sudo: unable to execute /opt/disk-alarm/disk_alarm.sh: No such file or directory

安裝 dos2unix 套件

sudo apt install dos2unix

執行一次 dos2unix

dos2unix /opt/disk-alarm/disk_alarm.sh
回覆 dos2unix: converting file /opt/disk-alarm/disk_alarm.sh to Unix format ... 表示 OK 了

測試硬碟空間不足時,會不會正常發信:

使用 df -h 指令檢查你的空間,例如:查看後空間有 50%,腳本配置的 THRESHOLD 改為 49,手動執行一次腳本:

sudo /opt/disk-alarm/disk_alarm.sh

回覆

{
  "id": "<20170627002604.101848.F8524ED033333333@yungke.me>",
  "message": "Queued. Thank you."
}

然後去郵箱收信,會有一封通知信,如下圖:

Mail disk alarm

設置 crontab,我設置每天 1 點檢查一次硬碟空間。

0 1 * * * sudo /opt/disk-alarm/disk_alarm.sh > /dev/null 2>&1

參考文件:

一介資男 – VPS 伺服器空間使用量警示

Featured Photo 攝影師:Pixabay,連結:Pexels

Follow me

yungke

視咖啡如命的癮君子,沒有厲害的技術,只會小打小鬧的電腦工程師,其實是個打雜小弟,修電燈、水管也都是我的工作。
yungke
Follow me
Advertisement

Follow Me

查看本文
喜愛 Like 點擊數!!

Comments

  1. Kay says:

    感謝細心指導。 設置好了!!!

    万歳!!! (哈,日本的習慣。就是有那種謝天謝地的意味.. !! )

Back to top