Como posso verificar através do comando shell se um disco externo específico está conectado? (por etiqueta ou código do dispositivo)
9
Como posso verificar através do comando shell se um disco externo específico está conectado? (por etiqueta ou código do dispositivo)
Para testar se um dispositivo específico está conectado, você pode usar grep
com a -q
opção de pesquisar a saída 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, independentemente de o dispositivo estar montado.
lsblk -f | grep f9035fce-b3a1-4aee-80ef-44e432b78fdb | grep / -q && echo yes || echo no
./dev/disk/
contém os seguintes diretórios, que contêm link simbólico para dispositivos reais. Esses links são criados e removidos dinamicamente porudev
, portanto, eles estão sempre atualizados: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:
No meu script de backup, eu nem checo a presença do disco, apenas o resultado do
mount
comando, como este:fonte
lsusb
para listar o dispositivo USB conectado se o seu disco externo estiver conectado através da interface USB.lsblk -f
para listar dispositivos de bloco, UUIDs e seus pontos de montagem, pois seu disco externo é um dispositivo de bloco.fonte
-f
listar pontos de montagem? As listas de saída padrão los de qualquer maneirafindfs
é feito para isso. Você pode pesquisar por:Etiqueta FS
FS uuid
Etiqueta GPT
Uuid GPT
As pesquisas diferenciam maiúsculas de minúsculas. Se várias partições corresponderem, apenas a última será exibida.
fonte