[udev] montage usb (résolu )
[udev] montage usb (résolu )
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.
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.
Dernière modification par nmy le mer. 02 déc. 2009, 12:17, modifié 1 fois.
Re: [udev] montage usb (en cours )
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:
en testant dans le script:
Code : Tout sélectionner
SUBSYSTEM=="block", ATTR{partition}=="1", ATTRS{serial}=="AA71013000016033", RUN+="/tmp/syncit.sh"
Code : Tout sélectionner
[ "$ACTION" == "add" ]
- mélodie
- Maître du Kyudo
- Messages : 2784
- Inscription : lun. 30 oct. 2006, 02:06
- Localisation : Pyrénées
Re: [udev] montage usb (en cours )
Bonjour,
Je ne sais pas trop comment on le configure, mais je voudrais signaler l'existence de halevt.
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:
Cela me semble pouvoir s'appliquer à ton cas, pourvu que tu trouves les bonnes commandes à inscrire dans un halevt.xml
Je ne sais pas trop comment on le configure, mais je voudrais signaler l'existence de halevt.
Enfin, ce sont des fichiers xml, juste que je ne suis pas trop rodée avec ça.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
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>
Re: [udev] montage usb (en cours )
presque ça mais c'est pas dans le script qu'il faut le mettre mais dans la règle udevtuxce 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:en testant dans le script:Code : Tout sélectionner
SUBSYSTEM=="block", ATTR{partition}=="1", ATTRS{serial}=="AA71013000016033", RUN+="/tmp/syncit.sh"
Code : Tout sélectionner
[ "$ACTION" == "add" ]
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 )
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 : presque ça mais c'est pas dans le script qu'il faut le mettre mais dans la règle udev
tu backup une partition en particulier ou plusieurs partitions ?nmy a écrit : SUBSYSTEM=="usb", ACTION=="add", ATTRS{serial}=="AA71013000016033", RUN+="/tmp/syncit.sh"
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
Sinon, comment tu fais pour deviner le périphérique à monter ? tu utilises les uuid ?
pas obligé, tu peux avoir des infos sans monter.nmy a écrit : première étape on monte le disque dur et on recupère certaines informations
c'est pas sur archlinux que tu testes, si ?nmy a écrit :udevinfo -a -p /sys/block/sdc
sur les dernière version d'udev et notamment sur arch:
Code : Tout sélectionner
udevadm info -a -p /sys/block/sdc
pas besoin non plus, sinon, comme pour info:nmy a écrit :udevcontrol reload_rules
Code : Tout sélectionner
udevadm control --reload-rules
- gyo
- Maître du Kyudo
- Messages : 1049
- Inscription : jeu. 19 avr. 2007, 10:40
- Localisation : Nantes (44)
Re: [udev] montage usb (en cours )
tuxce a écrit :c'est pas sur archlinux que tu testes, si ?
On dirait pas en tout casnmy 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
Re: [udev] montage usb (résolu )
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.
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.
- benjarobin
- Maître du Kyudo
- Messages : 17235
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [udev] montage usb (résolu )
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.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Re: [udev] montage usb (résolu )
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 ?
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 ?
- gyo
- Maître du Kyudo
- Messages : 1049
- Inscription : jeu. 19 avr. 2007, 10:40
- Localisation : Nantes (44)
Re: [udev] montage usb (résolu )
Et moi j'ai mis un smiley ! lapincompri