Shell Script 自動檢查硬碟使用量


Linux 下要用 Shell Script 自動檢查硬碟分割區的使用量, 可以透過 df 指令實現。 df 指令可以在 Linux 下檢視硬碟分割區使用量, 配合 grep 及 awk 擷取所需的資訊, 便可以用 Shell Script 自動檢查硬碟使用量, 當發現使用量超過設定的百分比 (例如 80%) 時, 再用 mail 指令發出電子郵件通知系統管理員。

執行 “df -h” 時會得出類似以下結果:

可以看到有些資訊是不需要的, 那便用 grep 過濾掉不需要的行, 例如有 “Filesystem” 及 “tmpfs” 字串的行:

這時可以再加上 awk, 只把第 1 欄及第 5 欄的資料擷取, 即 /dev/sda 及 17% 的內容:

現在輪到 Shell Script 的部份, 建立以下 Shell Script:

$ vim mon-disk.sh

然後加入以下內容:

其中有 3 個變數可以按需要修改:

ADMIN: 當硬碟分割區超過指定的使用量後, 發送到的電郵地址.
ALERT: 當硬碟分割區超過這個百分比時, 才會發送電郵.
EXCLUDE_LIST: 不用檢查的分割區.

完成後設定可執行權限, 以下假設上面 Shell Script 儲存在 /root/mon-disk.sh:

$ chmod +x /root/mon-disk.sh

最後設定 crontab 排程自動執行:

$ crontab -e

加入以下內容, 以下是每天 02:00 執行:

0 2 * * * /root/mon-disk.sh

One Response

  1. oscar 05 January 2023

Leave a Reply