Como saber no linux quando novos dispositivos USB são encontrados?

0

Existe alguma maneira de dizer quando uma alteração no hardware foi encontrada no Linux, além de pesquisar repetidamente todo o hardware e verificar se há mudanças?

Por exemplo, eu escrevi um script para montar o armazenamento do meu telefone e fazer backup de todas as novas fotos que tirei. Eu gostaria que o script fosse executado automaticamente quando eu conectasse meu telefone à porta usb.

Existe alguma maneira de eu ter meu sistema operacional (debian jessie) informando quando ocorre uma alteração de hardware?

    
por nullUser 18.09.2014 / 19:13

2 respostas

3

Aqui está uma maneira de executar um script bash após a detecção de uma unidade USB.

Conecte seu dispositivo e execute lsusb para recuperar as informações do dispositivo. Você deve ver algo semelhante a isto:

$ lsusb
Bus 002 Device 039: ID 0bc2:2100 Seagate RSS LLC

Nesse caso, o ID do fornecedor do dispositivo é 0bc2 e o ID do produto é 2100 .
Agora você pode criar uma regra UDEV .

$sudo vi /etc/udev/rules.d/85-my_usb_device_rule.rules

E adicione isto:

ACTION=="add", SUBSYSTEM=="usb", SYSFS{idVendor}=="0bc2", SYSFS{idProduct}=="2100", RUN+="/home/myhome/my_script"

/home/myhome/my_script é o caminho para o seu script que faria o que você quiser.

Para garantir que o script de detecção seja executado imediatamente, recarregue as regras UDEV :

$sudo udevadm control --reload-rules
    
por 18.09.2014 / 19:37
0

Cada "sistema de arquivos" tem um UUID disponível. Alguns também têm um "rótulo". (Leia 'man mount') Depois de conectar seu drive USB, seu script é executado. Esse script poderia, então, perguntar sobre o UUID ou o rótulo do sistema de arquivos recém-conectado. Armado com esse identificador, combine-o com o script de trabalho real a ser executado para essa unidade. Eu sugeriria uma tabela {IDENT} {COMMAND} {COMMENT} para que você só precise editá-la para adicionar novas unidades ao processamento.

    
por 13.05.2015 / 02:34