美文网首页
Linux下获取Pci-E设备列表

Linux下获取Pci-E设备列表

作者: Vincent_6c5f | 来源:发表于2019-03-24 16:18 被阅读0次

在linux系统下获pcie设备列表的shell脚本

#!/bin/bash
#
#通过dmidecode获取有关“Designation:、Type:、Current Usage:、Length:、Bus Address:的信息,并输出到/tmp/dmidecode_slot.log文件内
dmidecode -t slot | grep -E "Designation:|Type:|Current Usage:|Length:|Bus Address:" | sed 's/^[ \t]*//g' | sed '/^$/d' | grep -v "\-\-" \
 > /tmp/dmidecode_slot.log
 #在/tmp/dmidecode_slot.log文件内删除x8 x16 x2 x4每行第一份匹配的值
sed -i 's/x8 //;s/x16 //;s/x2 //;s/x4 //' /tmp/dmidecode_slot.log
sed -i 's/Express //' /tmp/dmidecode_slot.log
#获取bus address值,并赋值给busid变量
busid=`cat /tmp/dmidecode_slot.log | grep "Bus Address:" | awk -F ":" '{print $3":"$4}'|awk -F "." '{print $1}'| sort | uniq`
#通过busid循环出对应的pcie插卡设备名称,将空槽位设置未N/A,并将其值输出到 /tmp/dmidecode_slot.log文件里的bus addres 的下一行
for i in $busid
 do 
# pci_devices=$(lspci | grep "$i" |awk -F ":" '{print $NF}'| sort |uniq -c | awk 'NF{NF--}1'| awk 'NF{NF--}1')
 pci_devices=$(lspci | grep "$i" |awk -F ":" '{print $NF}'| sort |uniq -c|sed s'/^ *//g')

 if [ -n "$pci_devices" ]
 then 
 :
 else 
 pci_devices="N/A" 
 fi
 sed -i '/'"$i"'/a'"pcie_devices: $pci_devices"'' /tmp/dmidecode_slot.log
done
#
#
#去除标题,保留内容,并重新输出到dmidecode_slot1,log
cat /tmp/dmidecode_slot.log |awk -F ": " '{print $2}' > /tmp/dmidecode_slot1.log
#
#去掉busid的0000:
cat /tmp/dmidecode_slot1.log | grep 0000:| sed -i 's/\.0//;s/0000://' /tmp/dmidecode_slot1.log
#添加格式化输出分割线
sed -i 's/^/| &/g' /tmp/dmidecode_slot1.log
#
#将文件中的空格换成下划线(_),方便printf对其格式化输出
sed -i 's/ /_/g' /tmp/dmidecode_slot1.log
#将dmidecode_slot1.log内容转换为一行,并赋值为pci_list
pci_list=$(echo `cat /tmp/dmidecode_slot1.log`)
#清屏
clear
#格式化输出
echo -e "\033[033m
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
+                                      ____  __________           __    _      __                                                           +  
+                                     / __ \/ ____/  _/__        / /   (_)____/ /_                                                          +  
+                                    / /_/ / /    / // _ \______/ /   / / ___/ __/                                                          +  
+                                   / ____/ /____/ //  __/_____/ /___/ (__  ) /_                                                            +  
+                                  /_/    \____/___/\___/     /_____/_/____/\__/   v1.0-2018.10.17                                          +  
+                                                                                                                                           +\033[0m"
#
echo -e "\033[33m+------------+------------+-----------+--------+----------+---------------------------------------------------------------------------------+\033[0m" > /tmp/pcie_list.log
echo -e "\033[33m| SOLT       | TPYE       | USAGE     | LENGTH | BUS ADD  | DEVIECS                                                                         |\033[0m" >> /tmp/pcie_list.log
echo -e "\033[33m+------------+------------+-----------+--------+----------+---------------------------------------------------------------------------------+\033[0m" >> /tmp/pcie_list.log
printf "%-12s %-12s %-11s %-8s %-10s %-1s\n" $pci_list >> /tmp/pcie_list.log
echo -e "\033[33m+------------+------------+-----------+--------+----------+---------------------------------------------------------------------------------+\033[0m" >> /tmp/pcie_list.log
#将文件中的下划线(_)换成空格,还原输出
sed -i 's/_/ /g' /tmp/pcie_list.log
#将结果输出到屏幕上
cat /tmp/pcie_list.log
#删除临时文件
#rm -rf /tmp/dmidecode_slot1.log /tmp/dmidecode_slot.log

相关文章

  • Linux下获取Pci-E设备列表

    在linux系统下获pcie设备列表的shell脚本

  • FFmpeg采集设备(1)

    FFmpeg中Linux设备操作 1、Linux下查看设备列表 输入设备:fbdev、lavfi、oss、vide...

  • iOS 设备信息对应设备名称

    参考设备列表:https://www.theiphonewiki.com/wiki/Models 获取设备信息: ...

  • ADB常用命令

    ADB 常用命令总结 获取设备列表及设备状态 获取设备的状态 设置设备连接的端口号 连接设备 结束 adb 服务,...

  • ADB常用命令

    连接一台台同局域网下设备ip为192.168.0.123,端口号为5555的设备 获取设备列表及设备状态 获取设备...

  • adb常用命令

    adb,Android Debug Bridge。 1.adb devices //获取设备列表及设备状态 2...

  • 获取Android系统设置里的时区列表

    2020-03-02 遇到的一点小问题 需要获取Android设备上的时区ID列表,网上找了下,只有获取当前手机...

  • Day2_Linux的使用

    linux的使用 Xshell连接Linux apt-get update - 重新获取软件包列表 apt-get...

  • adb常用命令

    ADB常用命令 adb connect+ip 远程连接Android设备 adb devices 获取设备列表和设...

  • Android 获取 应用列表 方法记录

    有时,我们需要获取设备上的 应用列表,例如获取 所有已安装的 或者 能够显示在 桌面上的APK.基于这些列表,我们...

网友评论

      本文标题:Linux下获取Pci-E设备列表

      本文链接:https://www.haomeiwen.com/subject/zymuvqtx.html