Làm cách nào để lấy byte TX / RX mà không có ifconfig?


62

ifconfigrõ ràng là không được chấp nhận trong các bản phân phối chính của Linux, tôi nghĩ rằng tôi đã học được điều gì đó về ipcông cụ được cho là sẽ được sử dụng thay vì ifconfig.

Và ở đây tôi gặp phải một vấn đề: khi tự chạy, ifconfighiển thị số byte nhận / truyền trên mỗi giao diện bên cạnh thông tin khác. Tôi không thể tìm ra cách để có được điều này ip. Không có chức năng như vậy trong công cụ này? Tôi có thể sử dụng những công cụ tích hợp nào khác để có được các số liệu thống kê đó?


Bạn cũng có thể kiểm tra netstat. linux.die.net/man/8/netstat
SunSparc

Câu trả lời:


53

Một tùy chọn khác là sử dụng hệ thống tập tin / Proc. Tệp / Proc / net / dev chứa số liệu thống kê về các giao diện mạng được định cấu hình. Mỗi dòng được dành riêng cho một giao diện mạng và nó chứa các số liệu thống kê để nhận và truyền. Các thống kê bao gồm các số liệu như tổng số byte nhận / truyền, gói, giọt, lỗi, v.v.

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

Hoặc bạn có thể thử lệnh netstat có thể hiển thị tất cả các giao diện mạng và số liệu thống kê liên quan:

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/devcó định dạng sạch nhất trong tất cả các giải pháp IMO, chấp nhận.
justina

Số liệu thống kê cho thấy cat /proc/net/devlà trong bao lâu?
lalebarde

Làm thế nào để bạn có được tx / rx từ /proc/net/dev?
Piotr Kula

1
Hãy thử phân tích trường 3. và 11. của đầu ra, đại loại như awk '/: / {print ($ 1, $ 3, $ 11)}' </ Proc / net / dev
dsmsk80

55

Các iplệnh mà là một phần của gói iproute2 là công cụ mới. Các linktiểu ban là để quản lý các thiết bị / giao diện.

Nếu bạn có thể lấy số liệu thống kê của một giao diện bằng cách sử dụng 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
Mặc dù proccâu trả lời là rõ ràng và nhẹ, nhưng câu trả lời này có lẽ là gần nhất với "sự thay thế" cho ifconfigcông cụ vì nó được thiết kế rõ ràng với sự thay thế ifconfigtrong tâm trí.
Moshe Katz

2
ip -s link show dev eth0chỉ hiển thị lưu lượng truy cập trên eth0
pim

4
Để có được điều này ở dạng người có thể đọc được (báo cáo bằng mb / gb / tb chứ không phải byte), hãy sử dụng -hcờ. Ví dụ , ip -h -s link.
Joseph Redfern

46

Bạn có thể nhận được tất cả các thông tin cần thiết thông qua 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

Ngoài ra, bạn có thể sử dụng iptables và phân tích đầu ra.

Đối với các gói đã nhận

# iptables -L INPUT -n -v

cho các gói truyền

# iptables -L OUTPUT -n -v 

Nếu máy chủ là một cổng, thì bạn cũng nên phân tích chuỗi FORWARD


2

Bạn có thể đọc tệp /sys/class/net/wlp3s0/statistics/rx_bytesvà nhận rx_byes trực tiếp mà không cần gọi lệnh khác, vnstatcũng tốt. Linux lưu trữ tất cả thông tin trong các tệp mà tôi biết, vì vậy tốt hơn là tìm các tệp đó và nhận thông tin. Tìm các tập tin liên quan là thách thức.


2
Chào mừng đến với cộng đồng! Làm tốt lắm, điều đó đúng, nhưng lưu ý rằng một số hạt nhân cũ không cung cấp các tệp này. Chúc bạn may mắn, và thành công! ;)
FarazX
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.