Verifique se um disco externo específico está conectado

8

Como posso verificar via comando shell se um disco externo específico está conectado? (por rótulo ou identificação do dispositivo)

    
por Jeno 20.11.2017 / 10:53

4 respostas

8

Para testar se um dispositivo específico está conectado, você pode usar grep com a opção -q para pesquisar a saída de lsusb ou lsblk , por exemplo

uuid=f9035fce-b3a1-4aee-80ef-44e432b78fdb
lsblk -f | grep -wq $uuid && echo yes || echo no

devicename="some Inc. Keyboard"
lsusb | grep -q "$devicename" && echo yes || echo no

ou com if :

uuid=f9035fce-b3a1-4aee-80ef-44e432b78fdb
if lsblk -f | grep -wq $uuid; then
  echo yes
else
  echo no
fi

Ambos podem ser usados, não importa se o dispositivo está montado.

    
por dessert 20.11.2017 / 11:29
8

/dev/disk/ contém os seguintes diretórios, que contêm links simbólicos para dispositivos reais. Esses links são criados e removidos dinamicamente por udev , então eles estão sempre atualizados:

  • by-id
  • by-partlabel
  • by-partuuid
  • por caminho
  • by-uuid

Portanto, verificar a existência do link simbólico usará menos recursos.

Aqui está um exemplo testando a presença de um disco usando seu número de série:

test -e /dev/disk/by-id/wwn-0x5002538d408be9e0 && echo yes || echo no

No meu script de backup eu nem mesmo verifico a presença do disco, só verifico o resultado do comando mount assim:

mount -o noatime $DESTINATION_PARTITION $DESTINATION_DIR || exit 1
    
por pim 20.11.2017 / 14:31
2

lsusb para listar o dispositivo usb conectado se o disco externo estiver conectado por meio da interface USB.

lsblk -f para listar dispositivos de bloco, UUIDs e seus pontos de montagem, pois seu disco externo é um dispositivo de bloco.

    
por arryph 20.11.2017 / 11:10
0

findfs é feito para isso. BBBesB MulherBes MulherBB MulherBB Mulher MulherBes MulherBes Mulher MulherB32BB MulherB MulherB32BB MulherB MulherB32BB MulherB MulherB32BB MulherB MulherBB Mulher MulherBesBBes

  • 32BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB32B32esBBes
    findfs LABEL="Ubuntu" &>/dev/null
    
  • 32BBBBB32Bes MulherBBB32BBBBBBBBBBB MulherBesesBBBBBBBBBBBBBB MulherBBB MulherBBBesBB MulherBBBBes
    findfs UUID="f9035fce-b3a1-4aee-80ef-44e432b78fdb" &>/dev/null
    
  • BB32esBesBesBesBB MulheresBBBBBBBBBB MulherBBBBBBBesBB MulheresesesesBBBBBB MulherBBesBBesBeseseseseses
    findfs PARTLABEL="EFI system partition" &>/dev/null
    
  • uuid da GPT

    findfs PARTUUID="85e66d2f-3709-4060-938e-ffe836433cc9" &>/dev/null
    

As pesquisas diferenciam maiúsculas de minúsculas. Se várias partições corresponderem, somente a última será exibida.

    
por user285259 21.11.2017 / 08:42