#!/bin/bash
#需求磁盘和内存不足%5、%10、%15告警。

DISK_THRESHOLD_5=5
DISK_THRESHOLD_10=10
DISK_THRESHOLD_15=15

MEMORY_THRESHOLD_5=5
MEMORY_THRESHOLD_10=10
MEMORY_THRESHOLD_15=15

WEBHOOK_URL="https://open.feishu.cn/open-apis/bot/v2/xxx"

disk_usage=$(df -h / | awk 'NR==2 {print $5}')
memory_usage=$(free | awk '/Mem/{printf("%d", ($3/$2)*100)}')

message=""

if [ ${disk_usage::-1} -ge $DISK_THRESHOLD_5 ] && [ ${disk_usage::-1} -lt $DISK_THRESHOLD_10 ]; then
    message+="磁盘空间不足 ${DISK_THRESHOLD_5}%\n"
elif [ ${disk_usage::-1} -ge $DISK_THRESHOLD_10 ] && [ ${disk_usage::-1} -lt $DISK_THRESHOLD_15 ]; then
    message+="磁盘空间不足 ${DISK_THRESHOLD_10}%\n"
elif [ ${disk_usage::-1} -ge $DISK_THRESHOLD_15 ]; then
    message+="磁盘空间严重不足 ${DISK_THRESHOLD_15}%\n"
fi

if [ $memory_usage -ge $MEMORY_THRESHOLD_5 ] && [ $memory_usage -lt $MEMORY_THRESHOLD_10 ]; then
    message+="内存不足 ${MEMORY_THRESHOLD_5}%"
elif [ $memory_usage -ge $MEMORY_THRESHOLD_10 ] && [ $memory_usage -lt $MEMORY_THRESHOLD_15 ]; then
    message+="内存不足 ${MEMORY_THRESHOLD_10}%"
elif [ $memory_usage -ge $MEMORY_THRESHOLD_15 ]; then
    message+="内存严重不足 ${MEMORY_THRESHOLD_15}%"
fi

if [ ! -z "$message" ]; then
    curl -X POST -H "Content-Type: application/json" -d "{\"msg_type\":\"text\",\"content\":{\"text\":\"$message\"}}" $WEBHOOK_URL
fi