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

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

我需要统计 Linux 机器(CentOS 5)的每日网络流量。

有没有办法使用标准/本机工具或实用程序来实现这一点?
还是我必须为此下载特殊软件?

谢谢。

答案1

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

答案2

我还建议使用维纳斯达

vnStat 1.6 by Teemu Toivola <tst at iki dot fi>

     -q,  --query          query database
     -h,  --hours          show hours
     -d,  --days           show days
     -m,  --months         show months
     -w,  --weeks          show weeks
     -t,  --top10          show top10
     -s,  --short          use short output
     -u,  --update         update database
     -i,  --iface          select interface (default: eth0)
     -?,  --help           short help
     -v,  --version        show version
     -tr, --traffic        calculate traffic
     -l,  --live           show transfer rate in real time


 eth0  /  monthly

   month         rx      |      tx      |   total
-------------------------+--------------+--------------------------------------
  Oct '09     225.70 GB  |   798.52 GB  |     1.00 TB   %%%%:::::::::::::
  Nov '09     138.46 GB  |   616.54 GB  |   755.01 GB   %%::::::::::

 eth0  /  daily

day         rx      |     tx      |  total
------------------------+-------------+----------------------------------------
   31.12.      6.56 GB  |   34.39 GB  |   40.95 GB   %%%::::::::::::::::
   01.01.      1.13 GB  |  746.92 MB  |    1.86 GB

答案3

维恩斯塔特是一款出色的基于控制台的每日/每周/每月流量监控器。它甚至允许您实时监控流量,非常方便。

它也占用很少的系统资源;)

答案4

你要磁共振成像仪这是一个网络监控工具,它可以生成你在网络上看到的所有网络图表(使用 rdtool 将数字转换成图片)

如果你不想设置,或者只是需要更简单的东西,你可以使用iptables记录数据传输。

相关内容