將以下內容複製或上傳到主機上,我的路徑檔名是 /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

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *