特定のネットワークインターフェイス、たとえばeth0でトラフィックを監視する方法(使用率のライブビューを取得する方法など)はありますか?
ここでの問題は、ボックスにあるツールのセットが固定されており、ほとんどのRHEL展開であるため、アドオンツールを使用できないことです。
基本的なものを探しており、通常はiostatのように存在します。
特定のネットワークインターフェイス、たとえばeth0でトラフィックを監視する方法(使用率のライブビューを取得する方法など)はありますか?
ここでの問題は、ボックスにあるツールのセットが固定されており、ほとんどのRHEL展開であるため、アドオンツールを使用できないことです。
基本的なものを探しており、通常はiostatのように存在します。
回答:
表示するデータは、古き良きifconfigに表示されます。
watch ifconfig eth0
または物事を目立たせるために:
watch -n 1 -d ifconfig eth0
ifconfig
。
iftopコマンドを使用します。リアルタイムで統計を表示します。
iftop -i eth0
ここでsceenshotsをチェックしてください:
http://www.thegeekstuff.com/2008/12/iftop-guide-display-network-interface-bandwidth-usage-on-linux/
新しいツールをインストールせずに:
while ifconfig eth0 | grep 'RX bytes'; do sleep 10; done
多くのユーティリティがあります:
iptablesを使用して、次のようなことを行うこともできます。
iptables -A INPUT -p tcp --dport $port -i eth0
そして
iptables -A OUTPUT -p tcp --sport $port -i eth0
次に、iptables -L -n -vは、インターフェイスを通過したパケット数を出力します。iptables-Zは、このカウントをゼロにします。
function humanValue()
{
h=( '' K M G T P )
i=1; v=$(( $1 * 8 ))
while [ $v -gt $(( 1 << 10 * i )) ]; do let i++; done;
echo -n "$(( $v >> 10 * --i )) ${h[i]}b/s";
}
ifaces=$(ip addr | grep -E "^[0-9]:" | cut -d" " -f2 | tr -d \:)
declare -A RX2 TX2;
while sleep 1;
do
date
for INTERFACE in $ifaces;
do
RX1=$(cat /sys/class/net/${INTERFACE}/statistics/rx_bytes)
TX1=$(cat /sys/class/net/${INTERFACE}/statistics/tx_bytes)
DOWN=$(( RX1 - RX2[$INTERFACE] ))
UP=$(( TX1 - TX2[$INTERFACE] ))
RX2[$INTERFACE]=$RX1; TX2[$INTERFACE]=$TX1
echo -e "[ $INTERFACE:\tRX: $(humanValue $DOWN)\t|\tTX: $(humanValue $UP) ]"
done;
done;