將以下內容複製或上傳到主機上,我的路徑檔名是 /root/cron/disk-alarm.sh ,你也可以自己取名。
請記得在單引號中填入 LINE API TOKEN 才會正常通知。
Bash
#!/bin/bash
# Version: 0.2
# 每小時執行檢查
# 0 * * * * /bin/bash /root/cron/disk-alarm.sh
# 容量使用百分比通報門檻(%)
USEPLIMIT=80
# LINE API TOKEN
export LINE_API_TOKEN=''
# 換行
NEWLINE=$'\n'
# 傳送到 Line
function send_to_line () {
curl --silent -X POST "https://notify-api.line.me/api/notify" -H "Authorization: Bearer ${LINE_API_TOKEN}" \
-F "message=${1}${NEWLINE}主機: $(hostname) ${NEWLINE}時間: $(date)"
}
# ext4、ZFS 磁碟格式
df -t ext4 | tail -n +2 | awk '{ print $5 " " $1 " " $6 }' | while read OUTPUT;
do
# 取出使用量(百分比)
USEP=$( echo ${OUTPUT} | awk '{ print $1}' | cut -d'%' -f1 )
# 擷取磁碟
PARTITION=$( echo ${OUTPUT} | awk '{ print $2 }' )
# 擷取路徑
FOLDER_PATH=$( echo ${OUTPUT} | awk '{ print $3 }' )
# 若硬碟用量達到門檻就傳送通知
if [ ${USEP} -ge ${USEPLIMIT} ]; then
send_to_line "- ${NEWLINE}空間快用完囉! ${NEWLINE}磁碟: ${PARTITION} 路徑: ${FOLDER_PATH} (${USEP}%)"
fi
done
將檔案權限改為可執行
chomd +x /root/cron/disk-alarm.sh
鍵入排程指令
crontab -e
進入編輯填入以下內容即可完成。
(路徑與檔名記得改成自己的)
# 每小時執行檢查
0 * * * * /bin/bash /root/cron/disk-alarm.sh
或是設每天晚上9點執行
# 每天晚上9點執行
0 21 * * * /bin/bash /root/cron/disk-alarm.sh