Linux:如何衡量每日/每月的网络流量?

前端之家收集整理的这篇文章主要介绍了Linux:如何衡量每日/每月的网络流量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要保留 linux机器(CentOS 5)的每日网络流量统计数据.

有没有办法使用标准/本机工具或实用程序?
或者我是否必须下载特殊软件?

谢谢.

解决方法

Zypher对rrdtool(以及其他任何使用它作为后端 – MRTG,Cacti等)的说法可能都是正确的. RRDTool旨在成为“平均”历史趋势分析工具.它以越来越非坚定的增量平均和存储计数器,并且随着时间的推移逐渐增加.

但是,这可以通过适当地设置RRA来​​配置.然而,我承认完全不知道如何配置这些,并且从来没有亲自运气使它们超出我的标准设置(15分钟,8小时,1周,1个月,1年).我建议考虑配置RRA以期待每日输入,并从netstat向其提供带宽计数器.您将获得一些非常好的历史数据并深入了解您的使用模式.

要回答您当前的问题,请确保您不要超过每日带宽限制;我建议每天为相关接口抓取netstat计数器.您可以将时间t的昨天流量与时间t的今天计数器进行比较,并找出已转移的数量.具有前一个值的平面文本文件存储的简单脚本可能就足够了.如果您检测到超出的带宽或在一天内监控它,则可以禁用该接口,如果您接近限制,则通知管理员.

要在OSX系统上获取输入字节,可以使用以下命令集:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $7}'

相反,输出可以通过以下方式获得:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'

您可以将相关计数器弹出到存储在某处的平面文件中,并将其与以下项进行比较:

#!/bin/bash
set -e # exit if any error occurs

prevIoUs_days_bytes_xferred=`cat $flatfile_storage`
todays_bytes_xferred=`netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'`

if [ $((todays_bytes_xferred - prevIoUs_days_bytes_xferred)) -gt $threshold ]; then
   DO SOME STUFF
fi
echo $todays_bytes_xferred > $flatfile_storage

只需调整netstat处理以匹配您的系统(因为我知道您没有运行OSX).

猜你在找的Linux相关文章