#!/bin/bash

# 输出结果文件
OUTPUT_FILE="/tmp/io_wait.data"
# 通知文件
NOTIFY_FILE="/tmp/io_notify.sent"

# 获取当前IO等待百分比
current_io_wait=$(vmstat 2 2 | tail -1 | awk '{print $16}')

# 把当前的IO等待百分比写入文件，每行一个
echo $current_io_wait >> $OUTPUT_FILE

# 保留最近4次的结果
tail -4 $OUTPUT_FILE > $OUTPUT_FILE.tmp
mv $OUTPUT_FILE.tmp $OUTPUT_FILE

# 检查条件是否满足: 连续三个值都大于4%
if [ $(awk '{count += ($1 > 9)} END {print count}' $OUTPUT_FILE) -ge 3 ]; then
    # 如果通知文件不存在即之前未发过通知，则发送通知
    if [ ! -f "$NOTIFY_FILE" ]; then
        # 此处发送通知，可以是邮件、短信、或其他形式的通知
        echo "IO wait has been over 2% for the last 3 minutes" # Replace with actual notification
        curl --connect-timeout 10 -m 20 "http://wxpusher.zjiecode.com/api/send/message?appToken=AT_BwOMc4MgErIvJwhMV3zcR448LT02bAUl&uid=UID_PgSDOkMOWbuwA7gnlS2o9mxSfHD1&content=***iowait***"
        curl --connect-timeout 10 -m 20 "https://api.telegram.org/bot1758653098:AAHcS8iXYuo8QAcqD9s4y7gwxTJ5HTfmg-U/sendMessage?chat_id=697096152&text=***iowait***" -x socks5h://192.168.6.8:7899
        # 触发通知后，创建通知文件
        touch $NOTIFY_FILE
	    rm -f $OUTPUT_FILE
    fi
else
    echo "nothing happened"
    # 如果不满足条件，则删除通知文件，以便在问题重新发生时再次通知
    if [ -f "$NOTIFY_FILE" ]; then
        rm -f $NOTIFY_FILE
    fi
fi
