1、使用sar命令
sar -n DEV 1 2Linux 5.4.0-77-generic (ZJ20070451.genscript.com) 2021年07月16日 _x86_64_ (12 CPU)08时57分25秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil08时57分26秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0008时57分26秒 lo 144.00 144.00 7.03 7.03 0.00 0.00 0.00 0.0008时57分26秒 vethf686b7a 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0008时57分26秒 enp9s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0008时57分26秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil08时57分27秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0008时57分27秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0008时57分27秒 vethf686b7a 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0008时57分27秒 enp9s0 2.00 2.00 0.13 0.13 0.00 0.00 0.00 0.00平均时间: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil平均时间: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00平均时间: lo 72.00 72.00 3.52 3.52 0.00 0.00 0.00 0.00平均时间: vethf686b7a 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00平均时间: enp9s0 1.00 1.00 0.06 0.06 0.00 0.00 0.00 0.00
参数说明:
IFACE:LAN接口
rxpck/s:每秒钟接收的数据包
txpck/s:每秒钟发送的数据包
rxbyt/s:每秒钟接收的字节数
txbyt/s:每秒钟发送的字节数
rxcmp/s:每秒钟接收的压缩数据包
txcmp/s:每秒钟发送的压缩数据包
rxmcst/s:每秒钟接收的多播数据包
rxerr/s:每秒钟接收的坏数据包
txerr/s:每秒钟发送的坏数据包
coll/s:每秒冲突数
rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数
txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数
txcarr/s:发送数据包时,每秒载波错误数
rxfram/s:每秒接收数据包的帧对齐错误数
rxfifo/s:接收的数据包每秒FIFO过速的错误数
txfifo/s:发送的数据包每秒FIFO过速的错误数
2、使用脚本处理后输出
#!/bin/bashethn=$1while truedoRX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')TX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')sleep 1RX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')TX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')clearecho -e "\t RX `date +%k:%M:%S` TX"RX=$((${RX_next}-${RX_pre}))TX=$((${TX_next}-${TX_pre}))if [[ $RX -lt 1024 ]];thenRX="${RX}B/s"elif [[ $RX -gt 1048576 ]];thenRX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')elseRX=$(echo $RX | awk '{print $1/1024 "KB/s"}')fiif [[ $TX -lt 1024 ]];thenTX="${TX}B/s"elif [[ $TX -gt 1048576 ]];thenTX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')elseTX=$(echo $TX | awk '{print $1/1024 "KB/s"}')fiecho -e "$ethn \t $RX $TX "done
3、使用/proc/net/dev
cat /proc/net/devInter-| Receive | Transmitface |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compresseddocker0: 6950752 2344 0 0 0 0 0 0 2308881 12397 0 0 0 0 0 0lo: 909011256 17579623 0 0 0 0 0 0 909011256 17579623 0 0 0 0 0 0vethf686b7a: 6983568 2344 0 0 0 0 0 0 2340649 12665 0 0 0 0 0 0enp9s0: 1004007110 3081734 0 231812 0 0 0 713079 316322807 1347591 0 0 0 0 0 0
参数说明:
最左边的表示接口的名字,Receive表示收包,Transmit表示发送包
bytes表示收发的字节数
packets表示收发正确的包量
errs表示收发错误的包量
drop表示收发丢弃的包量
4、ifconfig
ifconfigdocker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 198.18.0.1 netmask 255.255.255.0 broadcast 198.18.0.255inet6 fe80::42:faff:fede:915f prefixlen 64 scopeid 0x20<link>ether 02:42:fa:de:91:5f txqueuelen 0 (以太网)RX packets 2344 bytes 6950752 (6.9 MB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 12401 bytes 2309733 (2.3 MB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0enp9s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.1.26.68 netmask 255.255.255.0 broadcast 10.1.26.255inet6 fe80::b62e:99ff:feea:1f09 prefixlen 64 scopeid 0x20<link>ether b4:2e:99:ea:1f:09 txqueuelen 1000 (以太网)RX packets 3082190 bytes 1004121019 (1.0 GB)RX errors 0 dropped 231876 overruns 0 frame 0TX packets 1348015 bytes 316455326 (316.4 MB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
可以使用watch命令配合实现实时监控
