linux的网卡排序,linux 按mac排序分配网卡名称
需求:设备有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排序分配网卡名称相关推荐
- linux界面配置网卡命令,linux网卡的详细配置
1.网卡的配置文件 网卡的配置文件一般在/etc/sysconfig/network-scripts/目录下.一块网卡对应一个网卡配置文件. 网卡配置文件的命名规则: ifcfg-网卡类型以及网卡的序 ...
- 【CentOS Linux 7】【Linux网络配置基础】
Linux系统及应用---调研报告 [CentOS Linux 7]实验1[VMware安装.新建虚拟机:63个基础命令运行结果图] [CentOS Linux 7]实验2[Shell编程及应用] [ ...
- linux脚本怎么把文件地址变成动态地址,Linux脚本程序自动修改网卡配置文件中的MAC地址...
在玩Linux虚拟机的时候,一个安装好linux系统的virtual HDD会用于创建多个虚拟机,这样就不需要在创建每个虚拟机都安装一遍系统了.virtual HDD加载到虚拟机后,新的虚拟机的MAC ...
- linux命令怎么查看文件时间排序,linux中ls命令按照文件大小排...-ls命令按大小与时间排序文件...-ls按时间排序输出文件列表的实例分析_169IT.COM...
ls命令可以按照文件大小进行输出排序. 代码示例: man ls -S sort by file size 用法: ls -Sl 这是按照由大到小排序,如果想要反过来,从小到大,那么用: ls -S ...
- 合并和排序 Linux 上的文件
在 Linux 上合并和排序文本的方法有很多种,但如何去处理它取决于你试图做什么:你是只想将多个文件的内容放入一个文件中,还是以某种方式组织它,让它更易于使用.在本文中,我们将查看一些用于排序和合并文 ...
- linux脚本自动修改网卡,Linux脚本程序自动修改网卡配置文件中的MAC地址
在玩Linux虚拟机的时候,一个安装好linux系统的virtual HDD会用于创建多个虚拟机,这样就不需要在创建每个虚拟机都安装一遍系统了.virtual HDD加载到虚拟机后,新的虚拟机的MAC ...
- linux去重复程序,Linux下大文件的排序和去重复
命令介绍: sort :将文本文件内容加以排序. sort -u [file] = sort [file] | uniq (去重) 参数说明 -b 忽略每行前面开始出的空格字符 -c 检查文件是 ...
- linux文本去重分割,Linux命令去重统计排序
利用Linux命令进行文本按行去重并按重复次数排序 linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能.本文这里举例说明如何利用Linux命令行进行文本按行去重并 ...
- linux sort命令 排序,Linux sort排序方法
在文件的操作过程中,因为文件过多,往往需要进行一下排序,排序方法也就是从小到大排序或者从大到小排序.比如我们从nginx日志中需要找到访问量最长的url,那就需要对请求时间进行一个排序,根据请求时间长 ...
最新文章
- IIC通信控制的AD5259------在调试过程中遇到的奇葩问题
- Android Studio2.2.3 通过JNI引用ffmpeg库小结
- c++成员函数可以将this传递给普通函数
- 引入 ServletContextListener @Autowired null 解决办法
- 在中国使用pip更新或安装库的配置
- 父组件向子组件传递数据
- tensorflow之读取jpg图像保存为tfrecord再读取
- python模态窗口_python webdriver 对模态窗口的处理
- 使运行的窗口不在任务栏显示
- nodejs遍历文件夹下所有文件
- 计算机日志文件事件ID,系统日志出现事件 ID:16001来源:AFD的警告
- Ubuntu 20.04 安装 Seismic Unix
- 设计模式之观察者模式详解(附应用举例实现)
- MIUI金凡回应用户反馈小米手机发热情况
- 除了打工上班,为什么普通人很难长时间坚持去做一件事?
- 免费WiFi分享给你,全民免费WiFi来袭
- Pyecharts组合图表复用渲染模块实现方法
- 奥维地图显示所有标注
- SD miniSD microSD TF CF MMC XD-Picture卡 SDIO CE-ATA SDHC SDXC
- java 拼音转汉字_Java通过pinyin4j实现汉字转拼音