本文介绍如何是用shell脚本查看网络接口的ip地址、MAC地址、网络速率等信息。
系统环境
Centos7
1)检查可用的网络接口
使用ip和awk命令,过滤出状态为UP的网络接口。
- [root@localhost ~]# ip ad|awk '/state UP/ {print $2}'
- ens33:
- ens38:
2)查看网络接口的IP地址
使用下面命令过滤出每个接口的ip地址:
- [root@localhost ~]# ip -o addr |awk '/inet/{print $2,$4}'
- lo 127.0.0.1/8
- lo ::1/128
- ens33 192.168.43.138/24
- ens33 fe80::214e:53b4:43f6:5495/64
- ens38 172.25.254.130/24
- ens38 fe80::c2ff:9dbc:76be:6dd9/64
- 或者只查看IPv4地址:
- [root@localhost ~]# ip addr | grep inet|grep -v 'inet6'|awk '{print $NF, $2}'
- lo 127.0.0.1/8
- ens33 192.168.43.138/24
- ens38 172.25.254.130/24
3)查看网卡的MAC地址
如果只想查看网络接口名称和相应的MAC地址,请使用以下命令。检查特定的网络接口的MAC地址:
- [root@localhost ~]# ip link show ens33 | awk '/link/{print $2}'
- 00:0c:29:99:ee:d9
查看所有网络接口的MAC地址,可以写一个脚本来实现:
- [root@localhost ~]# cat mac-address.sh
- #!/bin/bash
- ip addr |awk '/state UP/{print $2}' | sed 's/://' | while read output
- do
- echo $output:
- ethtool -P $output
- done
查看一下运行结果:
4)查看网络接口的速度
如果要在Linux上检查网络接口端口速度,可以使用ethtool工具。下面是查看特定网络接口的速度:
- [root@localhost ~]# ethtool ens33|grep "Speed:"
- Speed: 1000Mb/s
查看所有接口的网络速度,可以写一个脚本来实现:
- [root@localhost ~]# cat port-speed.sh
- #!/bin/bash
- ip addr |awk '/state UP/{print $2}' | sed 's/://' | while read output
- do
- echo $output:
- ethtool $output |grep "Speed:"
- done
查看一下运行结果:
5)查看网络接口信息的Shell脚本
下面这个脚本,我们来实现查看主机名、IPv4、IPv6、MAC地址、网络接口速度信息:
- [root@localhost ~]# cat nic-info.sh
- #!/bin/bash
- hostname
- echo "-------------"
- for iname in $(ip addr |awk '/state UP/{print $2}')
- do
- echo "$iname"
- ip addr show $iname | grep inet | awk '{printf "%s:\t%s\n",$1,$2}'
- ip link show $iname | grep link | awk '{printf "MAC:\t%s\n",$2}'
- ethtool ens33 | awk '/Speed/{printf "%s\t%s\n",$1,$2}'
- done
本文转载自微信公众号「Linux就该这么学」,可以通过以下二维码关注。转载本文请联系Linux就该这么学公众号。