Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/04/2014, à 13:40

Oni_Shadow

script execution automatique lors branchement clef USB

Bonjour a tous, J
e voudrais pouvoir copier le contenu de clef USB se branchant à mon ordinateur, j'ai pensé ecrire un petit script batch mais je suis un peu perdu, comment trouver le chemin des clefs branchées à l'ordinateur? Une fois ce chemin trouvé un petit cp /path/*.mp3 suffit il?
une fois le script fonctionnel et rendu exécutable, comment l’exécuter a chaque fois qu'une clef est connectée? 
Enfin, une fois tout ceci fait est réalisable de créer deux fichier texte interagissant avec le script, un entrant l'uuid et le label de la clef et l'autre pemetant au script de ne pas s'exécuter sur les clefs dont l'uuid est rensigné dans le fichier?
Merci de votre aide
O_S


Rouillé

Hors ligne

#2 Le 18/04/2014, à 17:51

jacobus77

Re : script execution automatique lors branchement clef USB

une fois le script fonctionnel et rendu exécutable, comment l’exécuter a chaque fois qu'une clef est connectée?

Il me semble que la façon la plus propre de faire est en rajoutant tes propres règles udev.

Sinon quelques pistes pour ton script shell:
Tu peux scanner /sys/block à la recherche des devices sdX et à partir de là récupérer plein d'infos dont le modèle par exemple via /device/model, ce qui te permet de savoir quel device est ton disque.

Hors ligne

#3 Le 18/04/2014, à 19:08

Oni_Shadow

Re : script execution automatique lors branchement clef USB

merci je vais faire une recherche sur ce que sont les règles udev, je vous tiens au courant


Rouillé

Hors ligne

#4 Le 04/05/2014, à 23:06

Oni_Shadow

Re : script execution automatique lors branchement clef USB

Bonjour,

comme je l'ai deja explicité, je voudrais me faire un petit script qui à l'insertion d'une clef usb, copie tous les fichiers commençant par : os_

on m'a dit de regarder du coté des règles udev, j'ai donc lu tout ce que je trouvais sur le sujet, mais je bloque un peu... Une fois la règle mise
   
BUS=="usb", KERNEL=="sd*", NAME="%k", SYMLINK+="usbhd%n", RUN+="/home/os/.oniScripts/usb.sh"

(ais-je deja fait une erreure la? )

je ne sais pas comment accéder aux variable comme le path de la clef dans le script...
une idée?

Merci d'avance,

O_S


Rouillé

Hors ligne

#5 Le 06/05/2014, à 01:10

Postmortem

Re : script execution automatique lors branchement clef USB

Salut,
Jette un coup d'œil ici pour une façon de trouver le chemin de la clé.

Dernière modification par Postmortem (Le 06/05/2014, à 01:11)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#6 Le 07/05/2014, à 00:08

Oni_Shadow

Re : script execution automatique lors branchement clef USB

je ne comprend pas  vraiment... peux tu m'expliquer? smile
ces lignes me semblent bien obscure x)


Rouillé

Hors ligne

#7 Le 24/05/2014, à 10:04

Postmortem

Re : script execution automatique lors branchement clef USB

Salut,

Petite explication concernant le lien que je t'avais donné :

La règle udev :

KERNEL=="sd[b-z]1", ACTION=="add", ATTRS{manufacturer}=="SanDisk", ATTRS{product}=="Cruzer", ATTRS{serial}=="20054256000C86E2BF3D", RUN+="/bin/bash -c '/home/toto/insert_cle.sh %k &'"

KERNEL=="sd[b-z]1" : mon disque dur interne étant sda, je lui dis que la règle ne fonctionnera que pour les disques sdb, sdc, sdd etc... Le 1 car en général, sur une clé usb, on a qu'une partition. Et c'est bien lorsque le système détecte la partition (et non le disque) que je veux que la règle s'exécute.

ACTION=="add" : je veux que le script tourne seulement lorsque la partition est "ajoutée" ; pas quand je retire la clé par exemple.

ATTRS{manufacturer}=="SanDisk", ATTRS{product}=="Cruzer", ATTRS{serial}=="20054256000C86E2BF3D" : c'est pour identifier la clé ; j'aurais pu mettre seulement ATTRS{serial}=="20054256000C86E2BF3D" mais les autres infos me permettent d'identifier pour quelle clé est cette règle.

RUN+="/bin/bash -c '/home/toto/insert_cle.sh %k &'" : le script à appeler lorsque la clé est détectée ; %k sera remplacé par exemple par sdb1, sdc1 ou sdf1 ; ça me sert dans le script pour pouvoir détecter où sera montée la partition qui m'intéresse ; j'exécute en faisant /bin/bash -c 'mon_script &' car c'est le seul moyen que j'ai trouvé pour ne pas bloquer udev ; si j'appelle simplement le script, udev ne lit plus aucune autre règle le temps de l'exécution de mon script et chez moi, par exemple, ça empêchait le montage de la partition en automatique.

Sinon, voilà quelques commentaires pour le script appelé par la règle udev :

#!/bin/bash

# Fichier log écrasé à chaque exécution
exec > /tmp/insert_cle.log 2>&1

# $1 vaudra sdb1, sdc1 ou sdd1 etc... c'est la valeur de %k dans la règle udev
chemin_periph=/dev/$1
nb=1

# Petit message inséré dans le log
echo "$(date) : clé insérée !"

# On boucle jusqu'à temps que la variable $point_montage contienne une valeur non nulle ou jusqu'à ce qu'on ait fait 10 tours dans la boucle
until [[ $point_montage || $((nb++)) -gt 10 ]]
do
   # Récupération du point de montage et affectation à la variable $point_montage
   point_montage=$(mount | awk -v chemin_periph="$chemin_periph" '$1 == chemin_periph {print $3}')
   # On attend une seconde avant le prochain tour
   sleep 1
done

# Si la variable $point_montage est nulle, on affiche un message d'erreur dans le log et on quitte
[[ $point_montage ]] || { echo "Clé non montée"; exit 1; }

# Si le point de montage est détecté, on poursuit le script
echo "Clé montée sur $point_montage"

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#8 Le 24/05/2014, à 14:35

Oni_Shadow

Re : script execution automatique lors branchement clef USB

Merci pour ces infos,
en gros je ne comprenais pas vraiment ATTRS{manufacturer}=="SanDisk", ATTRS{product}=="Cruzer", ATTRS{serial}=="20054256000C86E2BF3D"
mais enfait, c'etait des regles qui t’étaient propres. Si jeu veux pouvoir copier des fichier peu importe la clef il suffit de les supprimer ces regles?
je teste tout ça! smile


Rouillé

Hors ligne

#9 Le 24/05/2014, à 20:35

Postmortem

Re : script execution automatique lors branchement clef USB

Il faut que la règle reconnaisse les clés USB sinon, ça risque de se lancer lors de la détection de tes disques durs internes.
J'essaierai de te trouver la bonne règle quand je me mettrai que mon ordi plus tard, là suis avec mon tel.


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#10 Le 25/05/2014, à 14:56

Oni_Shadow

Re : script execution automatique lors branchement clef USB

Merci, c'est super gentil smile


Rouillé

Hors ligne