BITFOX® | LÖSUNGEN | SERVICE | LOGIN | BLOG | KONTAKT

Mittwoch, 19. Juni 2024

Linux: Welcher Stick steckt eigentlich in welchem USB-Port - und hat welchen Laufwerkspfad?

 


Wer kennt das nicht? Man hantiert unter Linux mit mehreren USB-Sticks die gleichzeitig eingesteckt sind und verliert die Übersicht:
In welchem USB-Port steckt grade eigentlich welcher Stick? 
Sicherlich - ich kann nun mit "dmesg -w" herumsuchen, oder oder oder.

Aber gibt es da nicht eine bessere Methode?

Mnjein - die Kombination beim Suchen besteht aus lsusb -v und udevadm ; ist aber manuell fusselig.
Okay.. heute nervt mich das zum 1.0E6-ten Mal - da muss eine Lösung her.


#!/bin/env bash # # lsusbdev # # Auflisten von USB-Geräten und zugeordneten Device-Pathes # # 2024-06-19 Oliver Lenz, Bitfox Initial # # while read zeile; do if [[ ${zeile} =~ ^Bus\ [0-9]+\ Device\ [0-9]+:\ ID\ ([0-9a-f]+):([0-9a-f]+)\ .* ]]; then usb_line="${zeile}" usb_vendor_id="${BASH_REMATCH[1]}" usb_model_id="${BASH_REMATCH[2]}" elif [[ "${zeile}" =~ idVendor[\ \s\t]+0x${usb_vendor_id}[\ ]*(.*) ]]; then usb_vendor_str=${BASH_REMATCH[1]} elif [[ "${zeile}" =~ idProduct[\ \s\t]+0x${usb_model_id}[\ ]*(.*) ]]; then usb_product_str=${BASH_REMATCH[1]} elif [[ "${zeile}" =~ iSerial[\ \s\t]+[0-9]+[\ ]*(.*) ]]; then usb_serial="${BASH_REMATCH[1]}" echo "${usb_line}" if [ ! -z "${usb_serial}" ]; then for devicepath in $(ls -1 /dev/sd[a-z]); do if [ "$( udevadm info ${devicepath} | grep -e "E: ID_MODEL_ID=${usb_model_id}$" -e "E: ID_VENDOR_ID=${usb_vendor_id}$" -e "E: ID_SERIAL_SHORT=${usb_serial}$" | wc -l )" == "3" ]; then echo -e "\tDevicePath: ${devicepath}\n\tSerial: ${usb_serial}" [[ "$(udevadm info ${devicepath} | grep -m1 "^S: disk/by-path/pci-" )" =~ ^S:\ disk/by-path/(pci-([0-9\:\.]+)-usb-([0-9\:\.]+)-scsi-([0-9\:]+)) ]] && echo -e "\tUSB-Port: ${BASH_REMATCH[1]}" break fi done fi else echo "FAIL: ${zeile}" fi done< <( lsusb -v 2>/dev/null | grep -E "^Bus|idVendor|idProduct|iSerial" )
Oder einfach zum Herunterladen: https://github.com/bitfox/bash/tree/main/bin.

Wer nun also die USB-Sticks mit der Seriennummer versieht, der hat ausgesorgt.
....oO( Mist - wo ist das Etikettiergerät?! Und kann ich nicht einfach den USB-Port numerisch anzeigen und dann Beschriften? Immer diese blöden Ideen! )
....oO( Okay.. USB-Port auch noch eingefügt. )

Keine Kommentare:

Aktuelles