То, как обнаружить карту флэш-памяти с интерфейсом USB, отключается

На процессе резервного копирования программа должна скопировать tar.gz файл к смонтированной карте флэш-памяти с интерфейсом USB. Программа (nodeJS) использует API child_process.exec() выполнять сценарий оболочки. Сама функция получает stdio.

Так, с помощью сценария оболочки, как я могу проверить, разъединяется ли USBFlashDrive/отключается?

Устройство обычно появляется как sd[a-z]1 - отметьте regex в строке.

1
задан 23 May 2018 в 22:46

3 ответа

Я предлагаю

lsusb

по словам его автора,

lsusb утилита для отображения информации о Шинах USB в системе и устройствах, подключенных к ним.

Пример:

hani@My-FRIEND:~$ lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp.  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub  
Bus 002 Device 005: ID 8087:07dc Intel Corp.   
Bus 002 Device 004: ID 04f2:b3a3 Chicony Electronics Co., Ltd   
Bus 002 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller  
Bus 002 Device 007: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive  
Bus 002 Device 002: ID 0458:0185 KYE Systems Corp. (Mouse Systems)   
Bus 002 Device 006: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma   Ivory  
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Таким образом, как Вы видите, седьмая строка выходных выставочных деталей о флеш-накопителе (Карта памяти), которая включается прямо сейчас к компьютеру (через USB-порт).

0
ответ дан 8 December 2019 в 01:03

Для проверки, какие диски USB соединены, заглядывают /dev/disk/by-path/

ls -l /dev/disk/by-path/*usb*  | grep -v "part" | awk '{print $NF}'|  awk -F "/" '{print $NF}' | sort

Вывод предыдущей команды перечислит только диски usb.

grep -v "part" - исключает разделы.

sdb
sdc

Затем lsblk команда может распечатать некоторую полезную информацию как модель и размер.


#!/bin/bash
for usb in $(ls -l /dev/disk/by-path/*usb*  | grep -v "part" | awk '{print $NF}'|  awk -F "/" '{print $NF}')
  do
   lsblk  -n -d -o NAME,MODEL,VENDOR,SIZE,RM /dev/$usb
done


Проверять, где разделы дисков USB смонтированы

#!/bin/bash
for usbp in $(ls -l /dev/disk/by-path/usb  | grep "part" | awk '{print $NF}'|  awk -F "/" '{print $NF}')
  do
   findmnt -rno TARGET /dev/$usbp
done
0
ответ дан 8 December 2019 в 01:03

Я не знаю много о nodeJS (я - парень C++), но можно регистрировать присутствие диска /dev/ папка.

Когда я включил свой перьевой диск, я получаю файл /dev/sdc. Если я отключил его затем /dev/sdc исчезает.

Вот еще некоторая информация о том, Как проверить, существует ли файл в сценарии оболочки

0
ответ дан 8 December 2019 в 01:03

Другие вопросы по тегам:

Похожие вопросы: