vnstat 监控 linux 流量汇总每日超额提示

技术文章1年前 (2024)更新 gyx131
200 0 0

一般直接安装命令就可以了,比如CentOS下直接输入下面的命令:

yum install vnstat

创建数据库

首先需要创建数据库:

vnstat --create -i eth0

实际上第一次直接运行 vnstat 命令会自动提示让创建数据库,这里默认监控网卡 eth0 ,根据自己实际情况修改。如果是之前安装过,可以加 -u 参数升级,不存在的话会创建该数据库:

vnstat -u -i eth0
# vnstat 没有监控数据库权限
sudo chown -R vnstat:vnstat /var/lib/vnstat/

systemctl enable vnstat
systemctl start vnstat
systemctl status vnstat


vnstat -l #查看实时流量统计
vnstat -l -i eth0 #查看指定网络接口的实时流量统计
vnstat -h #按小时查看
vnstat -d #按天查看
vnstat -w #按周查看
vnstat -m #按月查看

 

运行shell  脚本代码如下:

#!/bin/bash

# 定义输出文件路径
OUTPUT_FILE="/home/centos/vnstat_daily_traffic.txt"

# 使用 vnstat 获取默认网络接口的日流量数据,并存入TXT文件
vnstat -d > $OUTPUT_FILE


# 获取vnstat日流量数据中的预估总流量(忽略小数部分)
ESTIMATED_GB_INT=$(vnstat -d | grep 'estimated' | awk '{print $8}')


# 输出预估流量信息
echo "预估总流量 (GB, 整数部分): $ESTIMATED_GB_INT"





# 假设我们已经从vnstat的输出中提取了预估流量,并将其转换为GB单位(这里仅为演示,实际请按vnstat输出调整)
ESTIMATED_GB=0 # 请用实际获取到的预估流量替换此处

# 将文件内容进行Base64编码
ENCODED_CONTENT=$(base64 $OUTPUT_FILE)

if [ "$ESTIMATED_GB" -lt 300 ]; then
# 访问正常状态网址,使用POST方式提交数据,包含预估流量在标题中(单位是G,不是GiB)
curl -X POST -d "biaoti=服务器流量监控状态-正常-预估流量-$ESTIMATED_GB_INT G&xinx=$ENCODED_CONTENT" "http://XXXX.php"
else
# 访问危险警报网址,使用POST方式提交数据,包含预估流量在标题中(单位是G,不是GiB)
curl -X POST -d "biaoti=危险警报-流量状态-危险-预估流量-$ESTIMATED_GB_INT G&xinx=$ENCODED_CONTENT" "http://XXXX.php"
fi
© 版权声明

相关文章

暂无评论

暂无评论...