Linux Shell script 檢查磁碟空間並自動寄發 Email 郵件通知警告

Linux

這是一個 Shell 腳本,主要功能是監控磁碟容量。如果使用率超過設定 %,則會將相關信息發送至指定的郵件地址。此外,腳本需賦予可執行權限,並設定 cron 自動在特定時間執行。

程式

登入 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

發表留言