Page 1 sur 1
[udev] montage usb (résolu )
Publié : lun. 30 nov. 2009, 20:14
par nmy
bonsoir,
je tente de faire un script backup lorsque je plug un disque dur usb.
donc je branche mon disque dur usb, udev le capte et lance un script qui monte le disque dur, ensuite je backup mes fichiers et le démonte, le seul hic c'est que udev tourne en boucle cad après le umount , udev capte que le disque dur est branche , le script se relance et ainsi de suite.
ma règle udev est la suivante:
SUBSYSTEMS=="usb", ATTRS{serial}=="AA71013000016033", RUN+="/tmp/syncit.sh"
sauf que je voudrais une fois que le disque dur soit démonté udev ne relance pas le script mais seulement quand je plug le disque dur.
quelqu' un à une suggestion?
merci d' avance.
Re: [udev] montage usb (en cours )
Publié : lun. 30 nov. 2009, 21:30
par tuxce
salut, je suis pas sûr que le démontage soit la cause, il ne génère normalement pas d'événement udev, par contre la règle doit matcher pas mal d'événement, essaie celle ci:
Code : Tout sélectionner
SUBSYSTEM=="block", ATTR{partition}=="1", ATTRS{serial}=="AA71013000016033", RUN+="/tmp/syncit.sh"
en testant dans le script:
Re: [udev] montage usb (en cours )
Publié : mar. 01 déc. 2009, 10:21
par mélodie
Bonjour,
Je ne sais pas trop comment on le configure, mais je voudrais signaler l'existence de halevt.
Nom : halevt
Version : 0.1.5-2
URL :
http://www.nongnu.org/halevt/
Licences : GPL
Groupes : --
Fournit : --
Dépend de : hal boolstuff libxml2
Dépendances opt. : pmount
Requis par : --
Est en conflit avec : --
Remplace : --
Taille (installé) : 260,00 K
Paqueteur : Unknown Packager
Architecture : any
Compilé le : sam. 17 oct. 2009 11:04:04 CEST
Installé le : sam. 17 oct. 2009 12:18:58 CEST
Motif d'installation : Explicitement installé
Script d'installation : Oui
Description : A daemon that executes arbitrary commands on HAL events
Enfin, ce sont des fichiers xml, juste que je ne suis pas trop rodée avec ça.
L'intérêt de ce programme est qu'on doit pouvoir configurer une action en fonction d'une situation.
Voici un .halevt/halevt.xml, juste pour montrer:
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<halevt:Configuration version="0.1" xmlns:halevt="http://www.environnement.ens.fr/perso/dumas/halevt.html">
<halevt:Device match="hal.volume.disc.has_data = true">
<halevt:Insertion exec="pcmanfm"/>
<halevt:Removal exec="killall pcmanfm"/>
</halevt:Device>
<halevt:Device match="hal.volume.disc.has_audio = true">
<halevt:Insertion exec="exaile /mnt/cdrom"/>
<halevt:Removal exec="killall exaile"/>
</halevt:Device>
<halevt:Device match="hal.info.udi = /org/freedesktop/Hal/devices/volume_empty_cd_r">
<halevt:Insertion exec="gnomebaker"/>
</halevt:Device>
<halevt:Device match="hal.info.udi = /org/freedesktop/Hal/devices/volume_empty_cd_rw">
<halevt:Insertion exec="gnomebaker"/>
</halevt:Device>
<halevt:Device match="hal.info.udi = /org/freedesktop/Hal/devices/volume_empty_dvd">
<halevt:Insertion exec="gnomebaker"/>
</halevt:Device>
<halevt:Device match="hal.info.category = storage & hal.storage.bus = usb">
<halevt:Insertion exec="pcmanfm"/>
<halevt:Removal exec="killall pcmanfm"/>
</halevt:Device>
<halevt:Device match="hal.info.category = camera">
<halevt:Insertion exec="gtkam"/>
</halevt:Device>
</halevt:Configuration>
Cela me semble pouvoir s'appliquer à ton cas, pourvu que tu trouves les bonnes commandes à inscrire dans un halevt.xml
Re: [udev] montage usb (en cours )
Publié : mer. 02 déc. 2009, 12:19
par nmy
tuxce a écrit :salut, je suis pas sûr que le démontage soit la cause, il ne génère normalement pas d'événement udev, par contre la règle doit matcher pas mal d'événement, essaie celle ci:
Code : Tout sélectionner
SUBSYSTEM=="block", ATTR{partition}=="1", ATTRS{serial}=="AA71013000016033", RUN+="/tmp/syncit.sh"
en testant dans le script:
presque ça mais c'est pas dans le script qu'il faut le mettre mais dans la règle udev
SUBSYSTEM=="usb", ACTION=="add", ATTRS{serial}=="AA71013000016033", RUN+="/tmp/syncit.sh"
et voici un mini tuto:
première étape on monte le disque dur et on recupère certaines informations
mount /dev/sdc1 /tmp
udevinfo -a -p /sys/block/sdc
nous avons besoin juste de ces lignes ci:
SUBSYSTEMS=="usb"
ATTRS{serial}=="57442D57584E583038534A32343430"
- maintenant on crée la règle udev qui lancera le script uniquement quand le disque dur sera branché ( pas monté )
echo 'SUBSYSTEMS=="usb", ACTION=="add", ATTRS{serial}=="57442D57584E583038534A32343430", RUN+="/etc/init.d/pragmabackup"' >> /etc/udev/rules.d/99-yourscriptname
- recharger les règles udev
udevcontrol reload_rules
Re: [udev] montage usb (en cours )
Publié : mer. 02 déc. 2009, 13:51
par tuxce
nmy a écrit :
presque ça mais c'est pas dans le script qu'il faut le mettre mais dans la règle udev
tu peux le mettre ici ou dans le script, c'est pareil, j'ai proposé dans le script parce que comme je sais pas ce que tu mets dans ce dernier, il peut être intéressant de prévoir la suppression du périphérique.
nmy a écrit :
SUBSYSTEM=="usb", ACTION=="add", ATTRS{serial}=="AA71013000016033", RUN+="/tmp/syncit.sh"
tu backup une partition en particulier ou plusieurs partitions ?
normalement cette règle va appeler ton script 2 fois à chaque fois, tu peux le tester en mettant dans le script un truc du genre:
Code : Tout sélectionner
#!/bin/sh
(
echo "-----------------------------"
date
echo "-----------------------------"
env
) >> /tmp/toto
t'auras 2 résultats.
Sinon, comment tu fais pour deviner le périphérique à monter ? tu utilises les uuid ?
nmy a écrit :
première étape on monte le disque dur et on recupère certaines informations
pas obligé, tu peux avoir des infos sans monter.
nmy a écrit :udevinfo -a -p /sys/block/sdc
c'est pas sur archlinux que tu testes, si ?
sur les dernière version d'udev et notamment sur arch:
nmy a écrit :udevcontrol reload_rules
pas besoin non plus, sinon, comme pour info:
Re: [udev] montage usb (en cours )
Publié : mer. 02 déc. 2009, 15:03
par gyo
tuxce a écrit :c'est pas sur archlinux que tu testes, si ?
nmy a écrit :echo 'SUBSYSTEMS=="usb", ACTION=="add", ATTRS{serial}=="57442D57584E583038534A32343430", RUN+="/etc/init.d/pragmabackup"' >> /etc/udev/rules.d/99-yourscriptname
- recharger les règles udev
udevcontrol reload_rules
On dirait pas en tout cas

Re: [udev] montage usb (résolu )
Publié : mer. 02 déc. 2009, 17:18
par nmy
euh la comprends pas l'intérêt de ces réponses.
Non le serveur de production n' est pas sous archlinux mais sous lenny... Est-ce un crime?
Et sorry mais si ça avait fonctionné sans que je monte le périphérique, je l' aurait fait....
Enfin vais arrêter là, me passerai du forum la prochaine fois.
Re: [udev] montage usb (résolu )
Publié : mer. 02 déc. 2009, 17:23
par benjarobin
Et bien... C'est la journée ou tout le monde se braque a la moindre remarque (pas nécessairement méchante). Bref bonne journée.
Re: [udev] montage usb (résolu )
Publié : mer. 02 déc. 2009, 17:28
par tuxce
ah oui, quand même ...
Je notais la différence de distrib que parce que les commandes citées ne fonctionnent pas sous archlinux, je pensais pas être offensant en donnant les commandes qui fonctionnent sous arch !
Et les questions, c'était pour avoir ton avis, j'étais curieux de voir comment tu utilisais ton script, je vois pas où est le mal...
c'est une journée spéciale aujourd'hui ou quoi ?
Re: [udev] montage usb (résolu )
Publié : mer. 02 déc. 2009, 17:37
par gyo
Et moi j'ai mis un smiley ! lapincompri
