基本上我需要驗證一個USB驅動器是否連接到某個USB埠。 我有以下內容:

USB驅動器標記為:白色,綠色,紅色

我有 3個USB埠也標記物理:白色,綠色,紅色

使用 BLKID,我可以從驅動器中接收信息,例如BLKID Example

/dec/sdb1: SEC_TYPE="msdos" LABEL="WHTIE" UUID="78FE-870D" TYPE="vfat"

因此,我知道很多關於驅動器本身,只知道標籤。 現在我使用 LSPCI,我可以得到關於USB埠的信息,因為我知道每個橋的id 。 例如:LSPCI Example

0a.00.0 USB Controller: some info 4d88

最後一部分 4 d88是 PCI ID 。

所以我知道每個埠的PCI PCI,需要將它的與USB驅動器本身匹配,例如:4d88 = 白色

4dC0 = 綠色

4d84 = 紅色

我不知道該如何匹配/檢查該關係。 將感激任何幫助。

答案: 感謝你的幫助。#!/bin/bash

#variables

error="ERROR : Incorrect Command use 'usb_pci.sh'"

pci="USB PCI Check Successful"

errorstatus_white_pci="ERROR : USB PCI FAILED : WHITE Drive"

errorstatus_green_pci="ERROR : USB PCI FAILED : GREEN Drive"

errorstatus_red_pci="ERROR : USB PCI FAILED : RED Drive"

pci_check_white=4dc9

pci_check_green=4d81

pci_check_red=4dc5

#Takes USB label and gets/sys/block/sd?

echo"checking path for USB Label"

path_white=$(blkid | grep WHITE | cut -d : -f 1 | sed 's|[0-9]*$||; s|^/dev/|/sys/block/|')

echo"white:"$path_white

path_green=$(blkid | grep GREEN | cut -d : -f 1 | sed 's|[0-9]*$||; s|^/dev/|/sys/block/|')

echo"green:"$path_green

path_red=$(blkid | grep RED | cut -d : -f 1 | sed 's|[0-9]*$||; s|^/dev/|/sys/block/|')

echo"red:"$path_red

#Takes/sys/block/sd? and gets PCI Path xx:xx.x

echo"checking path to PCI path"

pci_path_white=$(ls -l ${path_white} | xargs | cut -d/-f 8 | cut -b 6-13)

echo"white:"$pci_path_white

pci_path_green=$(ls -l ${path_green} | xargs | cut -d/-f 8 | cut -b 6-13)

echo"green:"$pci_path_green

pci_path_red=$(ls -l ${path_red} | xargs | cut -d/-f 8 | cut -b 6-13)

echo"red:"$pci_path_red

#Takes xx:xx.x and gets the PCI Device ID xxxx

echo"checking PCI path to PCI Device ID"

pci_device_id_white=$(lspci -s ${pci_path_white} | tail -c -5)

echo"white:"$pci_device_id_white

pci_device_id_green=$(lspci -s ${pci_path_green} | tail -c -5)

echo"green:"$pci_device_id_green

pci_device_id_red=$(lspci -s ${pci_path_red} | tail -c -5)

echo"red:"$pci_device_id_red

#check if pci_device_id_xxxx = pci_check_xxxx

echo"checking PCI Device ID equals what it should"

if [ $pci_device_id_white = $pci_check_white ] ; then

echo"WHITE USB PCI Check Successful"

else

echo $errorstatus_white_pci

exit 1

fi

if [ $pci_device_id_green = $pci_check_green ] ; then

echo"GREEN USB PCI Check Successful"

else

echo $errorstatus_green_pci

exit 1

fi

if [ $pci_device_id_red = $pci_check_red ] ; then

echo"RED USB PCI Check Successful"

else

echo $errorstatus_red_pci

exit 1

fi

echo $pci

exit 0

編輯:

如 lspci,lsusb,blkid所要求的轉儲。lspci

00:00.0 Host bridge: Intel Corporation Unknown device 0104 (rev 09)

00:02.0 VGA compatible controller: Intel Corporation Unknown device 0126 (rev 09)

00:16.0 Communication controller: Intel Corporation Unknown device 1c3a (rev 04)

00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)

00:1a.0 USB Controller: Intel Corporation Unknown device 1c2d (rev 04)

00:1b.0 Audio device: Intel Corporation Unknown device 1c20 (rev 04)

00:1c.0 PCI bridge: Intel Corporation Unknown device 1c10 (rev b4)

00:1c.2 PCI bridge: Intel Corporation Unknown device 1c14 (rev b4)

00:1c.3 PCI bridge: Intel Corporation Unknown device 1c16 (rev b4)

00:1c.5 PCI bridge: Intel Corporation Unknown device 1c1a (rev b4)

00:1d.0 USB Controller: Intel Corporation Unknown device 1c26 (rev 04)

00:1f.0 ISA bridge: Intel Corporation Unknown device 1c4f (rev 04)

00:1f.2 RAID bus controller: Intel Corporation Mobile 82801 SATA RAID Controller (rev 04)

00:1f.3 SMBus: Intel Corporation Unknown device 1c22 (rev 04)

08:00.0 PCI bridge: Integrated Device Technology, Inc. PES4T4 PCI Express Switch (rev 0e)

09:02.0 PCI bridge: Integrated Device Technology, Inc. PES4T4 PCI Express Switch (rev 0e)

09:03.0 PCI bridge: Integrated Device Technology, Inc. PES4T4 PCI Express Switch (rev 0e)

09:04.0 PCI bridge: Integrated Device Technology, Inc. PES4T4 PCI Express Switch (rev 0e)

0a:00.0 USB Controller: Unknown device 4d88

0a:00.1 USB Controller: Unknown device 4dc9

0a:00.2 System peripheral: Unknown device 4dca

0a:00.3 Communication controller: Unknown device 4d8b

0b:00.0 USB Controller: Unknown device 4dc0

0b:00.1 USB Controller: Unknown device 4d81

0b:00.2 System peripheral: Unknown device 4d8e

0b:00.3 Serial controller: Unknown device 4dcf

0c:00.0 USB Controller: Unknown device 4d84

0c:00.1 USB Controller: Unknown device 4dc5

0c:00.2 System peripheral: Unknown device 4dc6

0c:00.3 Communication controller: Unknown device 4d87

0d:00.0 SD Host controller: O2 Micro, Inc. Unknown device 8221 (rev 05)

0d:00.1 Mass storage controller: O2 Micro, Inc. Unknown device 8231 (rev 03)

lsusb

Bus 004 Device 001: ID 0000:0000

Bus 006 Device 001: ID 0000:0000

Bus 005 Device 001: ID 0000:0000

Bus 001 Device 002: ID 8087:0024

Bus 001 Device 001: ID 0000:0000

Bus 007 Device 001: ID 0000:0000

Bus 008 Device 001: ID 0000:0000

Bus 003 Device 003: ID 0718:063d Imation Corp.

Bus 003 Device 001: ID 0000:0000

Bus 002 Device 002: ID 8087:0024

Bus 002 Device 004: ID 0a5c:5800 Broadcom Corp. BCM5880 Secure Applications Processor

Bus 002 Device 001: ID 0000:0000

Bus 002 Device 003: ID 413c:3012 Dell Computer Corp. Optical Wheel Mouse

blkid

/dev/mapper/VolGroup00-LogVol01: TYPE="swap" UUID="6b361baf-08ae-4f2c-933b-5028c15b6fb5"

/dev/mapper/VolGroup00-LogVol00: UUID="d15840ac-0073-483d-b630-7d2a497eaac9" TYPE="ext3"

/dev/sda1: LABEL="/boot" UUID="39331b93-a08d-45b5-b1ea-fcc6586be7bd" TYPE="ext3"

/dev/VolGroup00/LogVol00: UUID="d15840ac-0073-483d-b630-7d2a497eaac9" TYPE="ext3"

/dev/VolGroup00/LogVol01: TYPE="swap" UUID="6b361baf-08ae-4f2c-933b-5028c15b6fb5"

/dev/sdb1: SEC_TYPE="msdos" LABEL="WHITE" UUID="78FE-870D" TYPE="vfat"

/dev/sdc1: SEC_TYPE="msdos" LABEL="GREEN" UUID="61FE-B32E" TYPE="vfat"

/dev/sdd1: SEC_TYPE="msdos" LABEL="RED" UUID="E5DB-4A1A" TYPE="vfat"

Logo

一站式 AI 云服务平台

更多推荐