ifconfig
は主要なLinuxディストリビューションで非推奨になっているようなので、ip
の代わりに使用することになっているifconfig
ツールについて何か学ぶべきだと思いました。
そしてここで私は問題に遭遇しました:単独で実行すると、ifconfig
は他の情報に加えて各インターフェイスで送受信されたバイト数を示します。これをip
から取得する方法が見つかりませんでした。このツールにはそのような機能はありませんか?これらの統計を取得するために使用できる他の組み込みツールは何ですか?
別のオプションは、/ 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
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
あなたは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 [〜#〜]チェーンも解析する必要があります
あなたはファイルを読むことができます/sys/class/net/wlp3s0/statistics/rx_bytes
および別のコマンドを呼び出さずに直接rx_byesを取得します。vnstat
も適しています。 Linuxは私が知っているようにすべての情報をファイルに保存するので、それらのファイルを見つけて情報を取得する方が良いでしょう。関連するファイルを見つけることが課題です。