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

Если 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.

  • Как повысить привилегии в середине конвейера?
  • Как создать реальную копию дескриптора файла stdout и stderr без использования unbuffer / script / tee только с встроенными встроенными в bash?
  • Разрешить имя netbios и передать его в mount.cifs в скрипте
  • Awk напечатайте номер по ширине и округлите его вверх
  • При входе в систему, сделайте снимок пользователя в окне Login (loginGUI promt window)
  • Большая замена в XML
  • Как запустить плазменный скрипт KDE из командной строки без GUI?
  • Присвоение строковой переменной из SQL-запроса переменной оболочки
  • 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

    Как установить umask для системного пользователя?

    Как узнать путь исполняемого исполняемого файла?

    Как перечислить все запущенные X-приложения?

    LVM2: получение имен lv и vg из пути (имя группы томов и имя логического тома)

    ssh немедленно завершается сообщением Terminated

    Почему диспетчер сеансов xrdp не показывает приглашение входа в пароль пользователя?

    Как обновить ядро ​​от терминала в Linux Mint 18?

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

    Сервер X периодически перезапускается без причины

    Извлечение чисел с десятичной точкой из вывода ls в Bash

    sfdisk не любит разделы – хочу сбросить еще один жесткий диск для восстановления программного RAID

    Как ожидать от PID от вызванного процесса?

    Отключить аппаратное ускорение на Gnome 3 или исправить VNC

    Можно ли изменить разрешение каталога на предыдущее состояние?

    Учитывая права, владельца и группу файла, какой алгоритм определяет, может ли данный пользователь читать / записывать / выполнять файл?

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