需求:设备有6个千电口,2个万兆光口。 需要按类型和接口顺序排列后为它们分配网卡名称(请注意不是mac顺序,而是busid号)。

例如:

00-10-f3-ff-ff-80-d1-35  --eth0

00-10-f3-ff-ff-80-d1-36  --eth1

00-10-f3-ff-ff-80-d1-37  --eth2

00-10-f3-ff-ff-80-d1-38  --eth3

00-10-f3-ff-ff-80-d1-39  --eth4

00-10-f3-ff-ff-80-d1-3a  --eth5

00-10-f3-ff-ff-77-2b-97  --fb10

00-10-f3-ff-ff-77-2b-97  --fb11

linux版本:centos6.2 32位

起初我是想通过python3的 psutil 模块 可以获得mac地址,然后将mac地址转换成十进制进行排序后对 /etc/udev/rules.d/70-persistent-net.rules 文件修改来实现。也考虑过mac地址不能代表io顺序的问题,最后发现linux命令lspci可以获取对应关系从而放弃这个思路。

#-*-coding:utf8-*-

macs=[]

interface={}

from psutil import net_if_addrs

for k, v in net_if_addrs().items():

for item in v:

address = item[1]

if ":" in address and len(address) == 17:

idkey = address.replace(‘:‘, ‘‘)

interface.update({address:(int(address.replace(‘:‘, ‘‘), 16))})

elif "-" in address and len(address) == 17:

idkey = address.replace(‘-‘, ‘‘)

interface.update({address:(int(address.replace(‘-‘, ‘‘), 16))})

for k in sorted(interface,key=interface.__getitem__):

print(k,interface[k])

lspci -D -n -v |egrep "0200|Device Serial Number"

这里是两个过滤条件,0200代表网卡,包含Device Serial Number行会显示mac地址 。

我的想法是通过busid顺序修改 “/etc/udev/rules.d/70-persistent-net.rules”文件的命名顺序

[[email protected] ~]# lspci -D -n -v |egrep "0200|Number"

0000:02:00.0 0200: 8086:150c

Capabilities: [140] Device Serial Number 00-10-f3-ff-ff-80-d1-35

0000:03:00.0 0200: 8086:150c

Capabilities: [140] Device Serial Number 00-10-f3-ff-ff-80-d1-36

0000:04:00.0 0200: 8086:150c

Capabilities: [140] Device Serial Number 00-10-f3-ff-ff-80-d1-37

0000:05:00.0 0200: 8086:150c

Capabilities: [140] Device Serial Number 00-10-f3-ff-ff-80-d1-38

0000:06:00.0 0200: 8086:150c

Capabilities: [140] Device Serial Number 00-10-f3-ff-ff-80-d1-39

0000:07:00.0 0200: 8086:150c

Capabilities: [140] Device Serial Number 00-10-f3-ff-ff-80-d1-3a

0000:09:00.0 0200: 8086:10fb (rev 01)

Capabilities: [140] Device Serial Number 00-10-f3-ff-ff-77-2b-97

0000:09:00.1 0200: 8086:10fb (rev 01)

Capabilities: [140] Device Serial Number 00-10-f3-ff-ff-77-2b-97

原文:https://www.cnblogs.com/bcode/p/10595521.html

linux的网卡排序,linux 按mac排序分配网卡名称相关推荐

  1. linux界面配置网卡命令,linux网卡的详细配置

    1.网卡的配置文件 网卡的配置文件一般在/etc/sysconfig/network-scripts/目录下.一块网卡对应一个网卡配置文件. 网卡配置文件的命名规则: ifcfg-网卡类型以及网卡的序 ...

  2. 【CentOS Linux 7】【Linux网络配置基础】

    Linux系统及应用---调研报告 [CentOS Linux 7]实验1[VMware安装.新建虚拟机:63个基础命令运行结果图] [CentOS Linux 7]实验2[Shell编程及应用] [ ...

  3. linux脚本怎么把文件地址变成动态地址,Linux脚本程序自动修改网卡配置文件中的MAC地址...

    在玩Linux虚拟机的时候,一个安装好linux系统的virtual HDD会用于创建多个虚拟机,这样就不需要在创建每个虚拟机都安装一遍系统了.virtual HDD加载到虚拟机后,新的虚拟机的MAC ...

  4. linux命令怎么查看文件时间排序,linux中ls命令按照文件大小排...-ls命令按大小与时间排序文件...-ls按时间排序输出文件列表的实例分析_169IT.COM...

    ls命令可以按照文件大小进行输出排序. 代码示例: man ls -S sort  by file size 用法: ls -Sl 这是按照由大到小排序,如果想要反过来,从小到大,那么用: ls -S ...

  5. 合并和排序 Linux 上的文件

    在 Linux 上合并和排序文本的方法有很多种,但如何去处理它取决于你试图做什么:你是只想将多个文件的内容放入一个文件中,还是以某种方式组织它,让它更易于使用.在本文中,我们将查看一些用于排序和合并文 ...

  6. linux脚本自动修改网卡,Linux脚本程序自动修改网卡配置文件中的MAC地址

    在玩Linux虚拟机的时候,一个安装好linux系统的virtual HDD会用于创建多个虚拟机,这样就不需要在创建每个虚拟机都安装一遍系统了.virtual HDD加载到虚拟机后,新的虚拟机的MAC ...

  7. linux去重复程序,Linux下大文件的排序和去重复

    命令介绍: sort  :将文本文件内容加以排序. sort -u [file]  =  sort [file] | uniq (去重) 参数说明 -b 忽略每行前面开始出的空格字符 -c 检查文件是 ...

  8. linux文本去重分割,Linux命令去重统计排序

    利用Linux命令进行文本按行去重并按重复次数排序 linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能.本文这里举例说明如何利用Linux命令行进行文本按行去重并 ...

  9. linux sort命令 排序,Linux sort排序方法

    在文件的操作过程中,因为文件过多,往往需要进行一下排序,排序方法也就是从小到大排序或者从大到小排序.比如我们从nginx日志中需要找到访问量最长的url,那就需要对请求时间进行一个排序,根据请求时间长 ...

最新文章

  1. IIC通信控制的AD5259------在调试过程中遇到的奇葩问题
  2. Android Studio2.2.3 通过JNI引用ffmpeg库小结
  3. c++成员函数可以将this传递给普通函数
  4. 引入 ServletContextListener @Autowired null 解决办法
  5. 在中国使用pip更新或安装库的配置
  6. 父组件向子组件传递数据
  7. tensorflow之读取jpg图像保存为tfrecord再读取
  8. python模态窗口_python webdriver 对模态窗口的处理
  9. 使运行的窗口不在任务栏显示
  10. nodejs遍历文件夹下所有文件
  11. 计算机日志文件事件ID,系统日志出现事件 ID:16001来源:AFD的警告
  12. Ubuntu 20.04 安装 Seismic Unix
  13. 设计模式之观察者模式详解(附应用举例实现)
  14. MIUI金凡回应用户反馈小米手机发热情况
  15. 除了打工上班,为什么普通人很难长时间坚持去做一件事?
  16. 免费WiFi分享给你,全民免费WiFi来袭
  17. Pyecharts组合图表复用渲染模块实现方法
  18. 奥维地图显示所有标注
  19. SD miniSD microSD TF CF MMC XD-Picture卡 SDIO CE-ATA SDHC SDXC
  20. java 拼音转汉字_Java通过pinyin4j实现汉字转拼音

热门文章

  1. ionic3 简易公告栏的制作
  2. vue实现类目筛选功能
  3. Maven 仓库概念和打包命令
  4. vue 在线预览word文件docx
  5. 服务器环境搭建——安装Java运行环境
  6. Linux系统日志 -
  7. 机房重构之--数据库设计说明书
  8. STM32MP157驱动开发——多点电容触摸屏驱动
  9. 人类首次商业载人航天,SpaceX如何把人送入太空?
  10. 2023千月影视v21原生双端带H5源码搭建