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).

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...