Dado que a pasta Backup é criada, você sabe que o script é executado com sucesso quando você faz o plugin do dispositivo. Eu suspeito que o script está sendo executado antes de o dispositivo realmente terminar de montar. Assim, os arquivos ainda não estão disponíveis para cp
.
O que acontece se você adicionar sleep 5
após mkdir $a
? Ou se você tentar copiar arquivos existentes?
Este link também é bastante útil como referência.
Eu também uso:
udevadm monitor --udev
Para assistir a eventos do udev em tempo real.
udevadm test /path/to/dev
Para simular uma execução de evento do udev para o dispositivo. Note que isso faz não executar qualquer programa especificado por uma tecla RUN.
EDIT: Como Gilles assinala, minha ideia não funciona. E eu não estou ciente de uma solução. Aqui está o porquê:
O Udev disponibilizará o dispositivo USB para o sistema operacional. Em seguida, o SO perceberá que o sistema operacional contém um sistema de arquivos montável e o montará. Nesse ponto, os arquivos no dispositivo USB estão realmente disponíveis.
Qualquer script executado por uma regra do udev executará antes de o sistema de arquivos ser montado. Se eu pensar em uma alternativa, atualizarei o post.