Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxについて >> Linuxはシェルスクリプトを使用して高速ネットワークトラフィックをカウントしますステップ

Linuxはシェルスクリプトを使用して高速ネットワークトラフィックをカウントしますステップ

  

Linuxシステムの運用では、ツールを使用してネットワークトラフィックを監視できますが、高速ネットワーク監視には特定の制限があります。以下の小シリーズでは、Linuxがシェルスクリプトを使用して高速ネットワークトラフィックを監視する方法を紹介します。

この記事では、ネットワークトラフィックを監視することができ、低速のlibpcapライブラリに依存しない、単純なシェルスクリプトを記述します。これらのスクリプトは、Gbと同じサイズの高速ネットワークインターフェースをサポートしており、「集約タイプ」のネットワークトラフィックに関心がある場合は、各ネットワークインターフェースのトラフィックをカウントできます。

スクリプトは主にsysfs仮想ファイルシステムに基づいています。これはカーネルがデバイスまたはドライバ関連の情報をユーザー空間に出力するために使用するメカニズムです。ネットワークインターフェースの関連分析データは、/sys /class /net /"ethX" /statisticsから出力されます。

たとえば、eth0ネットワークポートの分析レポートは次のファイルに出力されます。

/sys /class /net /eth0 /statistics /rx_packets:受信パケットデータ

/sys /class /net /eth0 /statistics /tx_packets:送信パケット数

/sys /class /net /eth0 /statistics /rx_bytes:受信バイト数

/sys /class /net /eth0 /statistics /tx_bytes:転送されたバイト数

/sys /class /net /eth0 /statistics /rx_dropped:パケット受信時にドロップされたデータ量< Br> /sys /class /net /eth0 /statistics /tx_dropped:トランスポートパケットによってドロップされたデータ量

これらのデータは、カーネルデータが変更されると自動的に更新されます。したがって、トラフィック統計を分析および計算するための一連のスクリプトを作成できます。これがこのようなスクリプトです(joemillerのおかげで)。最初のスクリプトは、受信(RX)または送信(TX)を含む、1秒あたりのデータ量を数えることです。後者は、ネットワーク伝送における受信(RX)送信(TX)帯域幅の説明である。これらのスクリプトでのインストールにツールは必要ありません。

1秒あたりのネットワークポートデータの測定:

#! /bin /bash

INTERVAL =' 1秒の更新間隔

if [-z' $ 1>]; then

echo

エコー使用量:$ 0 [ネットワークインタフェース]

echo

echo eg $ 0 eth0

echo

echoは1秒あたりのパケット数を示します

exit

fi

IF = $ 1

trueのとき

do

R1 = `cat /sys /class /net /$ 1 /statistics /rx_packets

T1 = `cat /sys /class /net /$ 1 /statistics /tx_packets

sleep $ INTERVAL

R2 =` Cat /sys /class /net /$ 1 /statistics /rx_packets

T2 = `cat /sys /class /net /$ 1 /statistics /tx_packets

TXPPS =` expr $ T2 - $ T1`

RXPPS = `expr $ R2 - $ R1`

echo' TX $ 1:$ TXPPS pkts /s RX $ 1:$ RXPPS pkts /s'

done
前12次合計2ページ

Copyright © Windowsの知識 All Rights Reserved