Forum Linux.général Copie automatique de fichiers au branchement clé usb

Posté par  .
Étiquettes : aucune
0
21
mar.
2008
Bonjour à tous,

Après avoir pas mal cherché et rien trouver de concret, je vais exposer mon pb ici.

Je cherche à lancer une copie de fichiers lors du branchement d'une clé USB.

En fait, je n'arrive pas à récupérer la sorte d'évènement à partir duquel on peut lancer un script.


Je cherche aussi, lors du branchement de cette clé, à stopper un programme java que j'ai fait et de le relancer ensuite pour qu'il prenne en compte le nouveau fichier copié.


Merci par avance pour votre aide,
  • # Précisions

    Posté par  . Évalué à 1.

    J'ai oublié de précisé que j'utilise Ubuntu 7.10, la machine virtuelle java par défaut et que la clé est bien reconnu et montée toute seule lorsque je la branche.
  • # Gnome?

    Posté par  (site web personnel) . Évalué à 4.

    Si c'est Ubuntu, je suppose que tu es sous Gnome. Il existe alors une option dans
    système > préferences > périphériques et media amovibles
    pour lancer automatiquement les programmes à l'insertion.

    Si tu coches cette option, chaque fois que tu insères une clé avec un fichier autorun (ou .autorun,et même d'autres variations), il te demande si tu veux exécuter l'autorun en question. A toi de mettre le bon script dans /media/disk/autorun
    • [^] # Re: Gnome?

      Posté par  . Évalué à 1.

      Merci, mais il n'y aura pas d'écran en fait sur le pc donc je ne pourrai pas valider un message à chaque fois..
  • # udev

    Posté par  . Évalué à 5.

    ca se fait dans tes règles udev.
    http://reactivated.net/writing_udev_rules.html#external-run
    très simple à faire
    • [^] # Re: udev

      Posté par  . Évalué à 1.

      Voilà ce que j'ai compris :

      KERNEL=="sdb", RUN+="/usr/bin/programme"


      Je peux lancer un différent programme en fonction du montage ou demontage avec - ACTION will be either "add" or "remove"

      Faire un "udevcontrol reload_rules" à la fin pour prendre en compte les modifs


      1-
      Où est ce qu'on doit modifier ces infos (dans un fichier?) ?

      2-
      Le chemin ici vers "programme" peut bien être un script .sh du type
      cp chemincle/fichier.zip cheminpc/fichier.zip ?

      3-
      Où doit on placer exactement le "ACTION" ?

      Merci pour vos réponses et pardonnez ma noobitude...
      • [^] # Re: udev

        Posté par  . Évalué à 2.

        regarde dans /etc/udev/rules.d/
        t'auras tous les exemples nécessaires
      • [^] # Re: udev

        Posté par  . Évalué à 1.

        Tu mets une ligne de ce genre dans rules.d/z99_mon_detect_usb
        (ps1: j'ai indenté pour la lisibilité...)
        (ps2: je teste un modèle/nodesérie précis)

        BUS=="usb",
        KERNEL=="sd??",
        SYSFS{idProduct}=="6855",
        SYSFS{idVendor}=="08d0",
        SYSFS{serial}=="9000000004545",
        NAME="%k", SYMLINK+="usbdiskbackup%n",
        OWNER="root",
        GROUP="root",
        MODE="0770",
        RUN+="/usr/local/sbin/backup_usbdisk.sh"

        pour avoir ces infos:
        -lsusb
        -udevinfo -q path -n /dev/sdX
        -udevinfo -a -p valeur_retournee_ci_dessus

        mais attention : le script est toujours appellé deux fois et l'action "remove" ne se déclenche pas ! (j'ai déja posté à ce sujet il y a quelque temps...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.