Salut jmarc93.
Pourriez-vous utiliser le bbcode [ code ] ... [ /code ] pour visualiser votre script shell, svp ?
Il s'agit du bouton </> en haut de la fenêtre de saisie de votre message.
jmarc93 a écrit :Je souhaite déclencher un script à l insertion d'une clé USB.
J'ai utilisé UDEV pour un autre usage que vous, dans stretch pour la rpi3+.
Dans le répertoire : "/etc/udev/rules.d>", j'ai créé sous le nom "72-static-name.rules", des règles de nommages des périphériques wifi.
Code : Tout sélectionner
/etc/udev/rules.d> cat 72-static-name.rules
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="b8:27:eb:85:80:79", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="b8:27:eb:d0:d5:2c", NAME="wlan0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:e0:4c:08:ac:db", NAME="wlan1"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:e0:4c:0b:f9:af", NAME="wlan2"
Ainsi, à chaque fois que j'insère soit le câble ethernet, ou un dongle wifi, celui-ci aura toujours le même nom.
Comme vous pouvez le constater, le nom de la règle commence par "72-" et se termine par ".rules". C'est obligatoire, d'après ce que j'ai compris.
Quelques remarques :
1) pour le nom de votre règle, pourquoi ne pas la nommer : "10-my.rules".
2) Je constate que vous définissez votre fichier comme du "SH" mais par contre vous le lancez en tant que "BASH".
Je mettrai plutôt "/bin/sh" au lieu de "/bin/bash".
3) Au lieu de mettre "run+=", ne serait-il pas plus judicieux de mettre "program="
4) Avez-vous vérifié le passage de vos paramètres dans votre script shell ?
5) Avez-vous utilisez la commande "udevadm info" ?
Dans cet exemple, j'ai un disque dur.
Code : Tout sélectionner
/etc/udev/rules.d> udevadm info -an /dev/sda1
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1':
KERNEL=="sda1"
SUBSYSTEM=="block"
DRIVER==""
ATTR{alignment_offset}=="0"
ATTR{discard_alignment}=="0"
ATTR{inflight}==" 0 0"
ATTR{partition}=="1"
ATTR{ro}=="0"
ATTR{size}=="204800"
ATTR{start}=="2048"
ATTR{stat}==" 196 14 10461 1200 2037 1508 48007 13240 0 2320 14430"
...
/etc/udev/rules.d>
A partir de cette commande, vous avez une multitude d'information qui vous serons utile.
5) vous n'êtes pas obligé de créer un script shell, mais d'insérer directement vos commandes dans la règle.
Vous pouvez vous inspirer de ce qui est présent dans "99-com.rules".
6) voici la règle que j'utiliserai :
Code : Tout sélectionner
ACTION=="add",SUBSYSTEM=="usb",KERNEL=="sda1",ATTRS{serial}=="070B83C150A9BA28",PROGRAM="/bin/sh -c '\
sudo mount /dev/sda1 /media/usb1\
'"
Vu que je n'ai pas testé, je ne sais pas si la syntaxe est correcte.
@+