それが私のシステムにカフェインが不足しているのかどうかはわかりませんが、これを行う正しい方法が何であるかを私は一生理解できません(数学)。
手動で停止するまで、解析されたethtool -Sの値を「x」(このテストでは6)秒ごとに記録するスクリプトがあります。反復の計算方法などのコードはありますが、1秒あたりの平均バイト数を正しく計算する方法がわかりません。
出力は次のようになります。
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
ご覧のとおり、バイトはすべてインクリメントされており、これを何千回も繰り返すことになります。
インターフェイスごとにこれらの数値を合計し、1秒あたりの平均バイト数を計算する正しい方法は何ですか(最終的には* 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という名前の変数がすでにあります