我不确定是不是我的系统中缺乏咖啡因,但我一生都无法弄清楚这样做的正确方法是什么(数学)。
我有一个脚本,它每隔“x”(在此测试期间为 6)秒记录解析的 ethtool -S 的值,直到它被手动停止。我有关于如何计算迭代等的代码,但我无法弄清楚如何正确计算每秒的平均字节数。
这是输出的样子:
Fri Jun 8 23:48:35 GMT 2012 {{{
============== Network Statistics ===============
IFNAME rx_bytes tx_bytes
eth0 27840111418 3083391508
eth4 6153013050 18478875401
eth5 686368648 238683883
eth6 53863181321 2119523154
eth7 23127231747 84602654827
eth8 399517273166 1686004510
Fri Jun 8 23:48:41 GMT 2012 {{{
============== Network Statistics ===============
IFNAME rx_bytes tx_bytes
eth0 27840118248 3083392896
eth4 6153014438 18478876789
eth5 686370036 238685271
eth6 53863182709 2119524542
eth7 23127238019 84602660337
eth8 399519325260 1686018706
正如我们所看到的,字节都增加了,我将进行数千次迭代。
在每个接口的基础上完全计算这些数字并计算每秒平均字节数的正确方法是什么(我最终将通过 * 0.00000762939453 将其移动到 mbps)。
到目前为止,我尝试过的一切都失败了……悲惨:\
感谢您的时间/耐心/帮助!
编辑:: 我目前认为我需要做的是删除 rx/tx 字节的原始值以规范化数据。我当前(丑陋的)用于提取初始总和的字符串是这样的:
int1_rx_bytes=`cat $logfile | grep $int1 | awk '{print $2}' | awk '{sum+=$1} END {printf "%f", sum}'`
出于减法目的,我会将原始数字放在哪里?作为参考,我已经有了一个名为 $int1_orig_rx_bytes 的变量