Como fazer um script agir em um drive USB quando ele é montado [duplicado]

0

Ok, aqui está o que estou tentando realizar,

Eu quero configurar vários sistemas para ter um script iniciado quando qualquer qualquer pen drive estiver montado e, em seguida, se uma pasta específica estiver no pen drive copiar seu conteúdo para uma pasta no sistema. / p>

Eu fiz pesquisas e encontrei maneiras de executar um script quando um determinado usb é montado, mas não qualquer. em segundo lugar, porque eu quero que o script atue no pendrive recém-montado automaticamente, eu precisaria de seu ponto de montagem, ou o caminho para o root ser passado para o script ou alguma outra solução alternativa.

Eu na verdade já tenho um script criado para procurar o diretório, e então copiei as diretórios que eu quero, mas não sei como usá-lo em nenhum usb que esteja montado

essencialmente, a razão prática para isso é que eu quero ser capaz de inserir anystick em vários sistemas e copiar automaticamente os arquivos em cada sistema. Eu tenho 2 instalações do Ubuntu e 2 outras que são baseadas no libreelec para o raspberry pi, então não há muitas opções para instalar pacotes extras, principalmente scripts básicos do systemd e do bash, espero

Eu quero uma solução de cross linux, pois isso será usado tanto com o Ubuntu quanto com o Libreelec. Eu preferiria usar o sistema d, mas o udev pode acabar sendo uma solução melhor.

    
por Jordan Ketterer 19.01.2018 / 02:25

1 resposta

0

Uma regra do udev é a maneira mais simples de realizar isso. As regras do udev são armazenadas em /etc/udev/rules.d e geralmente seguem o formato de NN-filename.rule , em que NN determina qual arquivo de regra é carregado primeiro.

Por exemplo, em /etc/udev/rules.d/10-local.rules , a adição do seguinte acionará um evento toda vez que um dispositivo de bloco removível for anexado com um nome de kernel no formato sdX :

KERNEL=="sd?", SUBSYSTEM=="block", ATTR{removable}=="1", RUN+="/path/to/script.sh"

Observe que isso pode iniciar seu script antes que o dispositivo seja montado, o que significa que você pode precisar montar o dispositivo manualmente.

Se você quiser combinar com regras diferentes, poderá descobrir os atributos de todos os eventos com os quais o dispositivo com o qual você está trabalhando causado por udevadm info -a /dev/devname .

    
por 19.01.2018 / 05:27