网卡信息
已知有如下网卡信息,我需要获取docker0
的网卡流量,或者eth0
的网卡流量信息
br-889578db29c5: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.1.2 netmask 255.255.240.0 broadcast 192.168.47.255
ether 06:46:34:d3:6c:6e txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.1 netmask 255.255.240.0 broadcast 192.168.15.255
ether 06:46:34:d3:6c:6e txqueuelen 0 (Ethernet)
RX packets 2903275 bytes 18415163 (145.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3480803 bytes 41616663107 (38.7 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.138 netmask 255.255.252.0 broadcast 10.10.10.255
ether 06:46:34:d3:6c:6e txqueuelen 1000 (Ethernet)
RX packets 137735219 bytes 12262207273 (11.4 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 149814187 bytes 71539395272 (66.6 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 120.123.14.61 netmask 255.255.252.0 broadcast 120.123.14.255
ether 06:46:34:d3:6c:6e txqueuelen 1000 (Ethernet)
RX packets 39503138 bytes 3704478909 (3.4 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 31096429 bytes 25633273429 (23.8 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
这里加入了判断,如果不输入参数,那么默认查询eth0的RX 流量,
如果输入了参数,那么也查找参数中的网卡名字的RX 流量
#!/bin/bash
add_line=3
if [ x$1 != x ]
then
nic=$1
nic_line=`ifconfig |grep -n $nic|awk -F ':' '{print $1}'`
rx_line=$(($nic_line+$add_line))
rx_traffic=$(ifconfig | awk "NR==$rx_line")
traffic=`echo $rx_traffic | awk -F ' ' '{print $5}' `
echo $traffic
else
nic=eth0
nic_line=`ifconfig |grep -n $nic|awk -F ':' '{print $1}'`
rx_line=$(($nic_line+$add_line))
rx_traffic=$(ifconfig | awk "NR==$rx_line")
traffic=`echo $rx_traffic | awk -F ' ' '{print $5}' `
echo $traffic
fi
以下是运行结果
[root@aliyun test]# bash wangka.sh docker0
18415163
[root@aliyun test]# bash wangka.sh
12262207273
[root@aliyun test]#
如果需要去读TX
信息,那么把add_line=3
修改为5即可
这个是bytes信息,转换为kb那么就除于1024即可