@Lynnwww #30 给你看看我的可以参考,然后放到crontab里每分钟跑一次。 不过要注意,vnstat是从安装开始后才开始计时的 #!/bin/bash # 设置网卡名称 INTERFACE="eth0" # 设置流量限制(单位:GB) LIMIT=180 # 获取当前月份的索引 MONTH_INDEX=$(vnstat -i $INTERFACE --json | jq '.interfaces[0].traffic.month | length - 1') # 获取当月流量数据(单位:KB) TX=$(vnstat -i $INTERFACE --json | jq --argjson idx "$MONTH_INDEX" '.interfaces[0].traffic.month[$idx].tx') RX=$(vnstat -i $INTERFACE --json | jq --argjson idx "$MONTH_INDEX" '.interfaces[0].traffic.month[$idx].rx') # 计算总流量(单位:GB) GB1=$(echo "scale=2; $TX / 1024 / 1024 / 1024" | bc) GB2=$(echo "scale=2; $RX / 1024 / 1024 / 1024" | bc) GB1=$(printf "%.2f" $GB1) GB2=$(printf "%.2f" $GB2) echo "Total traffic out: $GB1 GB" echo "Total traffic in: $GB2 GB" # 比较并选择较大的流量值 共享带宽 if (( $(echo "$GB2 > $GB1" | bc -l) )); then GB=$GB2 else GB=$GB1 fi # 选择出流量,eip。 #GB=$GB1 echo "CBWP traffic: $GB GB" #echo "EIP traffic: $GB GB" # 检查是否超过流量限制 if (( $(echo "$GB >= $LIMIT" | bc -l) )); then echo "Traffic limit exceeded. Disabling network interface." ip link set $INTERFACE down fi
@qq82348074 #32 是的,而且用vnstat等,它是默认5分钟检统计一次,当然,你甚至可以改成1秒。它的数据与cdt api基本一致,但api就是时延太大。 root@cdt:~# checkcdt.sh Total traffic out: 18.16 GB Total traffic in: 18.14 GB EIP traffic: 18.16 GB
@Lynnwww #30 给你看看我的可以参考,然后放到crontab里每分钟跑一次。
不过要注意,vnstat是从安装开始后才开始计时的
@陌生人 #31 这种本地的方式可以随时查询使用量吗
@qq82348074 #32 是的,而且用vnstat等,它是默认5分钟检统计一次,当然,你甚至可以改成1秒。它的数据与cdt api基本一致,但api就是时延太大。
root@cdt:~# checkcdt.sh
Total traffic out: 18.16 GB
Total traffic in: 18.14 GB
EIP traffic: 18.16 GB
@陌生人 #33 我也觉得延时大 不好用 看了你的发言 正在研究手动vnstat脚本的方式 感谢
和统计没关系 既然自己不怎么用 就是可能是流量被偷了 看看是不是CFCDN的域名。。。