Detectando novos dispositivos USB com o bash?

1

Estou escrevendo um script bash que precisa detectar quando um dispositivo de armazenamento usb é inserido e atribuí-lo a uma variável que normalmente seria parecida com: usb=/dev/sdb .

Eu tenho algumas idéias abstratas que envolvem o uso de watch , algum tipo de construção de loop if / while e possivelmente lsblk -o kname / lsblk -o pkname ; mas ainda estou para realizar plenamente qualquer coisa adequada.

Qual a melhor forma de implementar isso?

    
por tjt263 06.04.2016 / 06:44

1 resposta

1

Você pode lançar um script usando UDEV . "O udev também lida com todos os eventos de espaço do usuário gerados, enquanto dispositivos de hardware são adicionados ou removidos do sistema" (De link )

Dentro de um arquivo chamado: /etc/udev/rules.d/10-usb.rules adicione o seguinte:

KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", RUN+="/path/to/script.sh"

Observação: você pode precisar ajustar um pouco o local do arquivo, dependendo de sua distribuição. Nota: você pode precisar reiniciar antes que a regra entre em vigor.

    
por 14.11.2016 / 23:57