[udev] Script à l'insertion de clé usb
Publié : jeu. 14 févr. 2013, 23:02
Bonjour à tous !
Je vais traiter et poser mon problème au sujet de udev, sujet maintes fois traité mais les réponses que j'ai trouvées ne m'ont pas permis de résoudre mon soucis.
Le problème : je veux synchroniser un dossier de ma clé usb à l'insertion de celle-ci, et je veux que l'on me demande confirmation.
(tout n'est peut-être pas à synchroniser...)
Ma solution partielle :
1) j'utilise unison pour la synchronisation
2) j'ai créé un profil d'utilisation nommé "portfolio" pour unison qui détaille mes dossiers à synchroniser
3) j'ai fait une règle UDEV
4) j'ai fait un script pour lancer ma synchronisation (unison-portfolio-launcher)
5) ...qui appelle le code suivant :
Merci beaucoup !
Eric
Je vais traiter et poser mon problème au sujet de udev, sujet maintes fois traité mais les réponses que j'ai trouvées ne m'ont pas permis de résoudre mon soucis.
Le problème : je veux synchroniser un dossier de ma clé usb à l'insertion de celle-ci, et je veux que l'on me demande confirmation.
(tout n'est peut-être pas à synchroniser...)
Ma solution partielle :
1) j'utilise unison pour la synchronisation
2) j'ai créé un profil d'utilisation nommé "portfolio" pour unison qui détaille mes dossiers à synchroniser
3) j'ai fait une règle UDEV
Code : Tout sélectionner
# /etc/udev/rules.d/10-local.rules
ACTION=="add", KERNEL=="sd*",SUBSYTEM=="block", ATTRS{size}=="7897088", RUN+="/home/newick/scripts/unison-portfolio-launcher"
Code : Tout sélectionner
#unison-portfolio-launcher
#!/bin/bash
if [ "$ACTION" != 'add' ] ; then
exit
fi
#Tout d'abord, trouver où afficher tout ça : (trouver le ndu de l'affichage X local)
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
LocalDisplay=':0'
X11User=`who | grep $LocalDisplay | cut -f 1 -d ' '`
if [ -z "$X11User" ] ; then
exit
fi
#Envoyer la commande dans l'affichage local
export DISPLAY=$LocalDisplay
export HOME=/home/$X11User
nice -n 5 su $X11User -c "/home/newick/scripts/unison-portfolio | at now"
exit
Code : Tout sélectionner
#unison-portfolio
#!/bin/bash
# Script permettant la synchronisation du Portfolio
if zenity --question --title="Confirmation" --text="Lancer la synchronisation du portfolio ?"
then
unison-gtk2 portfolio
else
exit
fi
- Ce qui marche :
- La règle UDEV : à l'insertion de ma clef, le script est bien exécuté (j'ai la boîte de dialogue)
- Le problème d'affichage a été résolu par le LocalDislay
- L'exécution s'interrompait rapidement toute seule: ça été résolu par la commande "at now"
- Mon script unison-portfolio seul
- Ce qui ne fonctionne pas :
- Lors de l'appel à unison, celui-ci démarre mais ne reconnait pas ma clef. Et tant que je ne suis pas allé sur Thunar voir ma clef, ça ne fonctionne pas (pourtant celle-ci est considérée comme montée)
- Mon script est exécuté deux fois

Merci beaucoup !
Eric