ifconfigなしでTX / RXバイトを取得する方法は?


62

以来ifconfig明らかに主要なLinuxディストリビューションで推奨されている、私は私が何かを学ぶだろうと思ってipの代わりに使用されることになっていますツールifconfig

そして、ここで私は問題に遭遇しました:単独で実行すると、ifconfig他の情報に加えて各インターフェースで受信/送信されたバイト数を表示します。からこれを取得する方法を見つけることができませんでしたip。このツールにはそのような機能はありませんか?これらの統計情報を取得するために、他にどのような組み込みツールを使用できますか?


チェックアウトすることもできnetstatます。linux.die.net/man/8/netstat
SunSparc

回答:


53

別のオプションは、/ procファイルシステムを使用することです。/ procの/ネットの/ devファイルは、設定されたネットワークインターフェイスに関する統計情報が含まれています。各回線は1つのネットワークインターフェイス専用であり、受信および送信の統計が含まれています。統計には、受信/送信されたバイトの総数、パケット、ドロップ、エラーなどのメトリックが含まれます。

cat /proc/net/dev

    Inter-|   Receive                                                |  Transmit
     face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed

    lo:    29846937   129576     0    0    0     0          0       0 29846937   129576     0    0    0     0       0          0
 wlan0:    9467393340 8027251    0    0    0     0          0       0 2559312961 5896509    0    0    0     0       0          0

または、すべてのネットワークインターフェイスと関連する統計情報を表示できるnetstatコマンドを試すことができます。

netstat -i

Iface   MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
lo         65536   0   130435      0      0      0   130435      0      0      0 LRU
wlan0       1492   0  8028018      0      0      0  5897361      0      0      0 BMRU

/proc/net/devIMOのすべてのソリューションの中で最もクリーンな形式を採用しています。
justinas

で示される統計はcat /proc/net/devどれくらいの時間ですか?
ラレバルデ14

どのようにしてtx / rxを取得します/proc/net/devか?
ピョートルクラ

1
3.出力の11フィールド、AWKのようなものを解析しようとする'/:/ {プリント($ 1、$ 3 $ 12)} </ PROC / NET / DEV
dsmsk80

55

ipiproute2をパッケージの一部であるコマンドは新しいツールです。linkサブコマンドは、デバイス/インタフェースを管理するためのものです。

を使用してインターフェイスの統計情報を取得できる場合 ip -s link

root:~# ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast
    50679705   529967   0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    50679705   529967   0       0       0       0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:1d:7d:aa:e3:4e brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    187663757  308710386 0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    4051284587 532435117 0       0       0       0

6
ながらproc答えは清潔で、軽量で、この答えは、おそらくのための「交換」に最も近いifconfigそれが明示的に交換して設計されたため、ツールifconfigの心インチ
モシェカッツ

2
ip -s link show dev eth0eth0のトラフィックのみを表示するには
pim

4
これを人間が読める形式(バイトではなくmb / gb / tbで報告)で取得するには、-hフラグを使用します。たとえば、ip -h -s link
ジョセフ・レッドファーン

46

proc経由で必要なすべての情報を取得できます

# cat /sys/class/net/eth0/statistics/rx_bytes
# cat /sys/class/net/eth0/statistics/rx_packets

# cat /sys/class/net/eth0/statistics/tx_packets
# cat /sys/class/net/eth0/statistics/tx_bytes

また、iptablesを使用して出力を解析できます。

受信したパケットの場合

# iptables -L INPUT -n -v

送信パケット用

# iptables -L OUTPUT -n -v 

サーバーがゲートウェイである場合、FORWARDチェーンも解析する必要があります


2

/sys/class/net/wlp3s0/statistics/rx_bytes別のコマンドを呼び出さずに、ファイルを読み取ってrx_byesを直接取得することvnstatもできます。Linuxは、私が知っているようにすべての情報をファイルに保存するので、それらのファイルを見つけて情報を取得する方が適切です。関連するファイルを見つけることが課題です。


2
コミュニティへようこそ!よくやった、それは正しいですが、いくつかの古いカーネルはこれらのファイルを提供しないことに注意してください。あなたの幸運と成功を祈っています!;)
FarazX
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.