Використання udev:
Ви можете отримати корисний інформаційний запит udev(у системах, які його використовують - майже у всіх настільних Linux-серверах точно). Наприклад, якщо ви хочете знати, з яким пов’язаним приводом пов’язаний /dev/sdb, ви можете використовувати:
udevadm info --query=property --name=sdb
Він покаже вам список властивостей цього пристрою, включаючи серійний (ID_SERIAL_SHORT). Маючи цю інформацію, ви можете подивитися на вихід lsusb -vта дізнатись такі речі, як виробник та назва продукту.
Коротший шлях до цього був би
udevadm info --query=property --name=sdb | grep "\(MODEL_ID\|VENDOR_ID\)"
і побачити рядок зі збігом $ID_VENDOR_ID:$ID_MODEL_IDу набагато коротшому виході lsusb.
Ще один корисний варіант udevadm monitor. Використовуйте його, якщо ви хочете знати, який вузол пристрою створений у місці приєднання пристрою . Тож спочатку біжи
udevadm monitor --udev --subsystem-match=block
А потім підключіть пристрій. Ви побачите назви пристроїв виявлених блокових пристроїв (дисків / розділів), надруковані в кінці кожного рядка виводу.
Практичний приклад функції оболонки:
Ось функція, яку ви можете ввести у свій .bashrc(або .zshrc):
listusbdisks ()
{
[["x $ 1" == "xv"]] && shift && local VERBOSE = -v
для dsk в $ {@ - / dev / sd?}
робити
/ sbin / udevadm info --query = path --name = "$ dsk" | grep --colour = auto -q usb || продовжувати
echo "===== пристрою $ dsk є:"
(eval $ (/ sbin / udevadm info --query = властивість --name = "$ dsk" | grep "\ (МОДЕЛЬ | | VENDOR \) _ ID")
["$ ID_VENDOR_ID: $ ID_MODEL_ID" == ":"] && відлуння "Невідомо" || \
lsusb $ VERBOSE -d "$ ID_VENDOR_ID: $ ID_MODEL_ID"
)
grep -q "$ dsk" / proc / mounts && echo "----- ПРИСТРОЙ МОГУЄТЬСЯ ----"
відлуння
зроблено
}
Використовуйте його так:
listusbdisks- розпізнавати всі /dev/sdxпристрої;
listusbdisks sdbабо listusbdisks /dev/sdbабо listusbdisks sdb sdc- отримувати інформацію лише про певні пристрої;
listusbdisks -v [optional devices as above] - показувати багатослівні виходи lsusb
[Редагувати]: Додано певну функціональність, наприклад запити багатьох пристроїв, перевірку кріплень та багатослівність керування lsusb.