centos7 如何shell 提取出所有网卡的名字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7 如何shell 提取出所有网卡的名字相关的知识,希望对你有一定的参考价值。

参考技术A 第二个ip adds | sed -r -n ’s/^[0-9]+: (.*):.*/\1/p’

正确的是ip addr | sed -r -n ' s/^[0-9]+: (.*):.*/\1/p'

一个是 ip addr 的拼写 还有一个是 ' 是英文的
不过谢谢了
参考技术B ip addr | grep '^[0-9]' |awk -F':' 'print $2'
ip adds | sed -r -n ’s/^[0-9]+: (.*):.*/\1/p’本回答被提问者采纳

Centos 7 中网卡重命名及网乱序解决方案

参考技术A

从 /lib/udev/rules.d 可提取出网卡名称相关的配置文件:

60-net.rules
使用 /lib/udev/rename_device 这个程序,去查询 /etc/sysconfig/network-scripts/ 下所有以ifcfg-开头的文件
如果在 ifcfg-xx 中匹配到 HWADDR=xx:xx:xx:xx:xx:xx 参数的网卡接口
则选取 DEVICE=yyyy 中设置的名字作为网卡名称。

71-biosdevname.rules
如果系统中安装了 biosdevname ,且内核参数未指定 biosdevname=0 ,且上一步没有重命名网卡,则按照 biosdevname 的命名规范,从BIOS中取相关信息来命名网卡。
主要是取 SMBIOS 中的 type 9 (System Slot) 和 type 41 (OnboardDevices Extended Information)
不过要求 SMBIOS 的版本要高于2.6,且系统中要安装 biosdevname 程序。

75-net-description.rules
udev 通过检查网卡信息,填写如下这些 udev 的属性值
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH
ID_NET_NAME_MAC

80-net-name-slot.rules
如果在 60-net.rules , 71-biosdevname.rules 这两条规则中没有重命名网卡,且内核未指定 net.ifnames=0 参数
则 udev 依次尝试使用以下属性值来命名网卡,如果这些属性值都没有,则网卡不会被重命名。
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH

硬件:戴尔服务器
系统: Centos 7
千兆网卡:1,(4个接口)
万兆网卡:1(2个接口)
网卡 1 mac:00:0c:29:6e:8e:40

1 .网卡重命名测试

测试用例 :修改网卡1 的配置文件,步骤为添加文件 /etc/sysconfig/network-scripts/ifcfg-eth0

在上面的条件下,分别使用不同只的 biosdevname 和 net.ifnames ,然后重启查看网卡名称

测试结果

2. 网卡乱序测试

测试用例

测试结果

结论

在不修改 udev 规则的条件下, /etc/sysconfig/network-scripts/ 的 ifcfg-* 文件的优先最高。在 ifcfg-* 文件中将 DEVICE 和 mac 绑定后重命名网卡名称和避免网卡乱序。

以上是关于centos7 如何shell 提取出所有网卡的名字的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7 使用nmcli单网卡配置连续IP段

shell脚本输出多个主机的网卡速率

centos 双网卡绑定 mode哪种好些

centos7--shell脚本自动实现bond配置

centos7如何激活网卡

shell脚本 列出所有网卡的ip地址