web-dev-qa-db-ja.com

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

ifconfigは主要なLinuxディストリビューションで非推奨になっているようなので、ipの代わりに使用することになっているifconfigツールについて何か学ぶべきだと思いました。

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

66
justinas

別のオプションは、/ procファイルシステムを使用することです。 / proc/net/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
56
dsmsk80

Iproute2パッケージの一部であるipコマンドは、新しいツールです。 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
57
Zoredache

あなたは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 [〜#〜]チェーンも解析する必要があります

48
ALex_hha

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

2