一般直接安装命令就可以了,比如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
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...