Как получить серийный номер привода от точки монтирования?

Если lsblk -o NAME,SERIAL,MOUNTPOINT включает в свой вывод следующее:

 sdb X55MM4827123 └─sdb1 └─luks-4d0dc651-9aa6-452d-9442-7b33d95f8427 /run/media/main/mydrive 

Что такое простая консоль / команда CLI, которую я могу использовать для получения серийного номера ( X55MM4827123 в этом случае), когда я предоставляю точку монтирования ( /run/media/main/mydrive в этом случае)?

Ответ не обязательно должен использовать lsblk , но он должен, надеюсь, быть кратким и идеально использовать просто простые скрипты bash.

  • Сценарий Bash IDE
  • Как «rpm -i» пакет, только если более старая версия не существует?
  • Добавление нескольких комментариев в debchange в «пакетном режиме»?
  • Общий объем использования памяти одним процессом
  • ifplugd (lo): сбой выполнения программы, возвращаемое значение равно 1
  • Есть ли графическая оболочка или среда сценариев для Linux?
  • Подключение к порту с использованием общего сценария kermit
  • chmod + бесшумный режим + как код выхода из команды 0, несмотря на ошибку
  • 2 Solutions collect form web for “Как получить серийный номер привода от точки монтирования?”

    Эти параметры будут печатать ваш серийный диск без заголовков: lsblk -n -o SERIAL /dev/sda

    Варианты объяснены, и это можно найти на страницах man:

     -n, --noheadings Do not print a header line. 

    Эта опция удалит заголовки, такие как Serial: из выходного файла команды.

     -o, --output list Specify which output columns to print. Use --help to get a list of all supported columns. 

    Выберите информацию для печати о дисках.

    Этого будет достаточно, чтобы привести только серийный номер. К сожалению, lsblk не работает с lsblk монтирования, поскольку serial является атрибутом диска, а не раздела. Взглянув на synopsis :

     Synopsis lsblk [options] lsblk [options] device... 

    Вам нужно будет сделать огромные усилия, чтобы извлечь из точки монтирования раздел, обрезать информацию о диске и затем lsblk его в качестве параметра в lsblk . Это, вероятно, сделает трюк:

     mount| grep /run/media/main/mydrive | awk 'NR==1{print $1}'|sed 's/[0-9]*//g' 

    mount отобразит все точки монтирования, grep получит строку вашей точки монтирования, awk получит столбец раздела, а sed удалит числа, представляющие собой разделы разделов. Суммируя все:

     lsblk -n -o SERIAL `mount| grep /run/media/main/mydrive | awk 'NR==1{print $1}'|sed 's/[0-9]*//g'` 

    Насколько я понимаю, цель состоит в том, чтобы дать команду ввода в качестве точки монтирования и вывода серийного номера. Ну, это возможно с помощью небольшого скрипта, который использует немного магии awk и пакета smartmontools .

    Демо-версия:

     $ ./mount2serial.sh / [sudo] password for xieerqi: Serial Number: A22MD061520000172 $ ./mount2serial.sh /mnt/HDD [sudo] password for xieerqi: Serial Number: Z4GRCSXAT 

    И вот сам скрипт:

     #!/usr/bin/env bash if [ "$1" = "/" ] then dev=$(awk -v mount="$1" '$2 == mount{print $1}' /proc/self/mounts) else dev=$(awk -v mount="$1" '$0 ~ mount{print $1}' /proc/self/mounts) fi sudo smartctl -i "$dev" | grep 'Serial Number:' 
    Interesting Posts

    Есть ли способ поиска manpages для типичного сценария использования?

    Как запустить termux на моем ноутбуке?

    Как ограничить пропускную способность сети после передачи некоторых данных?

    Блендер падает при нажатии правой кнопкой мыши, не знает, как обновить драйвер

    Разрешение по умолчанию не принимается во внимание после setfacl

    Как просмотреть полный список процессов в верхней части

    Native Instruments Audio Kontrol 1 – треск

    отрывные ключи

    Как настроить IP-адрес на виртуальной виртуальной машине?

    Как написать вывод из терминала в новый файл с помощью команд linux без изменения выравнивания?

    Есть ли инструмент, который вставляет из буфера обмена один символ за раз?

    Не удается подключиться через ssh к серверу с глобальным IP-адресом

    Может ли команда find быть более компактной?

    проверка достоверности всех файлов в папке в зависимости от shebang

    GRUB2: как запомнить последний выбор grub

    Linux и Unix - лучшая ОС в мире.