GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisation des règles udev pour exécuter un script sur l'insertion USB

J'ai eu le même problème. Cela a fonctionné pour moi :

Essayez de copier votre script dans /usr/local/bin et changez de répertoire dans votre .rules fichier.

De plus, je ne sais pas ce qu'est SYSFS, mais je préférerais utiliser les propriétés ATTR.

La ligne suivante est le contenu de mon .rules fichier :

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/backup.sh"

notify-send nécessite l'accès à votre bus de session DBus, ce qu'il ne peut pas avoir pour deux raisons :

  • Aucune information sur la séance. Lorsqu'il est lancé par udev, votre script ne sait rien sur l'endroit où vous êtes connecté ou si vous êtes connecté du tout. Le multi-siège avec X11 est toujours délicat, mais le changement d'utilisateur fonctionne à la fois pour les sessions X11 et console. De nombreuses personnes utilisent également SSH, VNC et NX sur le réseau.

    (DISPLAY=:0 fonctionnerait la moitié du temps, mais c'est encore deviner au mieux.)

  • Refusé par la politique DBus. Même si votre script trouve d'une manière ou d'une autre votre session X11, il ne pourra pas envoyer de notifications car le script est exécuté en tant que root au lieu de votre compte utilisateur.


Linux
  1. Utilisation d'un script d'encapsulation Cron

  2. Comment déclencher un événement dans le script Shell lorsqu'un périphérique USB est supprimé ?

  3. Processus dans une session dans un shell interactif Vs dans un script ?

  4. Comment exécuter un script lorsque des périphériques USB sont connectés ou supprimés à l'aide d'UDEV

  5. Exécuter un script shell en parallèle

Conseils d'utilisation de tmux

Comment exécuter un script Python en PHP

Comment exécuter un script bash

Script au démarrage ?

Navigateur le plus rapide à exécuter sur une session X11 transférée

désactiver les règles MTP udev pour un périphérique spécifique afin qu'il puisse être monté en tant que périphérique de stockage de masse USB