用的vnstat
- #!/bin/bash
-
- # 获取TX数据量的单位
- unit=$(vnstat –oneline | awk -F ‘;’ ‘{print substr($10, length($10)-2, length($10))}’)
-
- # 判断单位是否为GiB
- if [ "$unit" = "GiB" ]; then
- # 获取TX数据量
- tx_data=$(vnstat –oneline | awk -F ‘;’ ‘{print substr($10, 1, length($10)-4)}’)
- # 获取RX数据量
- rx_data=$(vnstat –oneline | awk -F ‘;’ ‘{print substr($9, 1, length($9)-4)}’)
-
- # 获取TX和RX中的最大值
- max_data=$(echo "$tx_data $rx_data" | awk ‘{if ($1>$2) print $1; else print $2}’)
-
- # 判断最大值是否大于等于阈值
- if (( $(echo "$max_data >= 180" | bc -l) )); then
- # 如果大于等于阈值,执行脚本
- bash /root/tc.sh && curl -k –data chat_id="xxx" –data "text=Aliyun流量阈值提醒" "https://api.telegram.org/botxxxx/sendMessage"
- else
- # 如果小于阈值,不执行任何操作
- echo "入站:$rx_data GiB,出站:$tx_data GiB,最大数据量:$max_data GiB,小于阈值,忽略"
- fi
- else
- # 如果单位不是GiB,忽略
- echo "单位不是GiB,忽略"
- fi
复制代码
|