【小工具pcie2netdev】一次获取Mellanox网卡eth、ib、IP、PCIe等信息的命令(lspci > bdf > /sys/class/pci_bus > eth > ibdev)

快速回忆

  • 使用方法:拷贝 工具脚本 章节
  • 通过系统pcie的sys接口可以获取eth口,比如:ls -l /sys/class/pci_bus/0000:05/device/0000:05:00.0/net/
  • 通过lspci的-s可以查看某个bdf的信息:比如lspci -s 05:00.1
  • 通过lspci的-d可以查看某个vendor的所有pci设别,比如:lspci -d 15b3:
  • 通过ip link show可以查看某个接口的updown和ip信息,比如:ip addr show

背景

经常为了获取某个IB设备的信息需要多个命令,并且命令之间需要获取PCIe的BDF、获取Eth名字、获取ib名字,然后查询。效率低而且不全面。特此写了个小工具一把刷出来。效果:
在这里插入图片描述

工具脚本(拷贝执行)

mlnx_list=($(lspci -d 15b3: | awk '{print $1}' | awk -F\: '{print $1 "," $1":"$2}'))
printf "%-10s %-10s %-20s %-10s %-15s %-30s\n" "VENDOR" "ETH" "BDF" "IBdev" "IPaddr" "Company"
for item in "${mlnx_list[@]}"; do
        buf=$(echo "$item" | cut -d ',' -f 1)
        bdf=$(echo "$item" | cut -d ',' -f 2)
        eth="unknown"
        vendor="unknown"
        [ -d /sys/class/pci_bus/0000:$buf/device/0000:$bdf/net/ ] && eth=`ls /sys/class/pci_bus/0000:$buf/device/0000:$bdf/net/`
        [ -f /sys/class/pci_bus/0000:$buf/device/0000:$bdf/vendor ] && vendor=`cat /sys/class/pci_bus/0000:$buf/device/0000:$bdf/vendor`
        company="unknown"
        company=`lspci -s $bdf| awk '{print $4" " $7 " " $8 " "$9" "$10}'`
        ibv="unknown"
        if [ "x$eth" != "xunknown" ]; then ibv=`ibdev2netdev |grep $eth | awk '{print $1" "$NF}'`; fi
        ipaddr="ip_None"
        if [ "x$eth" != "xunknown" ]; then ipaddr=`ip addr show $eth| grep inet | awk '{print $2}'`; fi
        printf "%-10s %-10s %-20s %-10s %-15s %-30s\n" "$vendor" "$eth" "$ibv" "$bdf" "$ipaddr" "$company"
done

说明

  • 先通过lspci获取有哪些mellanox的pci设备(这里为何使用lspci作为第一步,因为lspci是实际插入服务器的硬件一对一,这样从物理设备作为基准进一步获取后面的数据)
  • 通过pci的bdf在 /sys/class/pci_bus总线中去查找支持的net设备以及vendor号,以及网卡代数信息
  • 通过eth信息,使用ivdev2netdev获取ib的dev信息
  • 通过ip addr获取ip信息以及up down信息

核心点:PCIe的BDF,进一步获取eth和ibdev

实操

在这里插入图片描述

单步获取信息说明

获取PCIe对应的eth口

注意修改红色部分

ls /sys/class/pci_bus/0000:05/device/0000:05:00.1/net

其他方式:ibdev2netdev 可以看有哪些eth口,然后ethtool -i xxxeth获取pcie bdf。这种方法比较绕,获取后还需要和lspci对比查看

lspci -s [bdf] 查看某一个设备的信息

比如:lspci -s 05:00.1
在这里插入图片描述

lspci -d 15b3: (注意冒号)查看Mellanox厂商的PCIe设备15b3是Mellanox的vendor id

比如:lspci -d 15b3:
在这里插入图片描述

ip addr show enp6s0f0 获取某个eth口的ip等信息

比如:ip addr show enp6s0f0
在这里插入图片描述
也可以ifconfig

后记

拷贝命令后在服务器执行快速获取当前服务器包括mellanox的网卡信息以及ip信息和接口等。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值