Linux Shell script 檢查磁碟空間並自動寄發 Email 郵件通知警告
程式
登入 root 進行編輯 Shell script:
vim /root/hdSpaceAlert.sh
#!/bin/bash
# 取得所有磁槽容量百分比
percentages=$(df | grep / | awk '{ print $5}' | sed 's/%//g')
# to array
percentages=(${percentages// /})
# 取得磁槽名稱
magneticSlot=$(df | grep / | awk '{ print $6}' | sed 's/%//g')
# to array
magneticSlot=(${magneticSlot// /})
# 超出容量幾 % 變數
max=70
# 初始化訊息變數
message=""
# 遍歷所有百分比
for i in "${!percentages[@]}"; do
# 判斷使用率是否大於等於變數 max
if [ ${percentages[$i]} -ge ${max} ]; then
# 若訊息變數為空,則新增第一條記錄
if [ -z "$message" ]; then
message="磁槽 ${magneticSlot[$i]},已使用超過 ${percentages[$i]}%"
# 若訊息變數已有內容,則追加新記錄
else
message="${message} \n磁槽 ${magneticSlot[$i]},已使用超過 ${percentages[$i]}%"
fi
fi
done
# 如果有訊息,則發送 Email
if [ -n "$message" ]; then
echo -e "$message" | mail -s "ERP 磁碟用量超過 ${max}% 警告" mis_mail@jan-cheng.com.tw,mis02@jan-cheng.com.tw,mis03@jan-cheng.com.tw
fi
設定
設定可執行權限:
chmod o+x hdSpaceAlert.sh
設定 crontab 自動執行 Shell script:
vim /etc/crontab
設定每天 08:00、13:00 及 17:00 自動執行 Shell script:
* 8,13,17 * * * root /root/hdSpaceAlert.sh
本著作係採用創用 CC 姓名標示-相同方式分享 3.0 台灣 授權條款授權.