1) Mon problème, c'est que, lorsque j'insère ma clé usb, j'ai bien un
fichier « out.txt » qui est crée sur le Bureau mais il contient 11 fois
la ligne « Éxecution... » ? J'en conclus que le script « go.bash » a été
lancé 11 fois, non ? Pourquoi ? J'imaginais qu'il y aurait une seule
exécution ?
2) A priori ma clé est automatiquement monté sur le dossier «
/media/KEYSAVE ». Mais comment être sûr d'exécuter le script « go.bash »
après le montage. J'ai nommé ma règle udev « 101-MY-key-save.rules » et
je pensais que la valeur 101 me garantissait que l'exécution se
produirait en dernier (ou presque).
1) Mon problème, c'est que, lorsque j'insère ma clé usb, j'ai bien un
fichier « out.txt » qui est crée sur le Bureau mais il contient 11 fois
la ligne « Éxecution... » ? J'en conclus que le script « go.bash » a été
lancé 11 fois, non ? Pourquoi ? J'imaginais qu'il y aurait une seule
exécution ?
2) A priori ma clé est automatiquement monté sur le dossier «
/media/KEYSAVE ». Mais comment être sûr d'exécuter le script « go.bash »
après le montage. J'ai nommé ma règle udev « 101-MY-key-save.rules » et
je pensais que la valeur 101 me garantissait que l'exécution se
produirait en dernier (ou presque).
1) Mon problème, c'est que, lorsque j'insère ma clé usb, j'ai bien un
fichier « out.txt » qui est crée sur le Bureau mais il contient 11 fois
la ligne « Éxecution... » ? J'en conclus que le script « go.bash » a été
lancé 11 fois, non ? Pourquoi ? J'imaginais qu'il y aurait une seule
exécution ?
2) A priori ma clé est automatiquement monté sur le dossier «
/media/KEYSAVE ». Mais comment être sûr d'exécuter le script « go.bash »
après le montage. J'ai nommé ma règle udev « 101-MY-key-save.rules » et
je pensais que la valeur 101 me garantissait que l'exécution se
produirait en dernier (ou presque).
Bonjour à tous,
Je suis sous Debian Squeeze avec Gnome version "2.3". Je voudrais que,
juste après avoir branché une clé usb particulière, la commande suivante
soit exécutée :
rsync -ax --progress --delete /dossier/source/ /media/ma-cle/cible/
afin de synchroniser un dossier « cible » de ma clé usb avec un dossier
« source » de mon PC.
Voilà où j'en suis pour l'instant. J'ai crée le fichier «
101-MY-key-save.rules » dans le dossier « /etc/udev/rules.d » et ce
fichier contient cette ligne là :
ACTION=="add", ATTRS{product}=="Cruzer",
ATTRS{serial}=="445671168F907F84", RUN+="/home/francois/Bureau/go.bash"
C'était juste un test idiot où le script go.bash est le suivant :
#----------------------------------------
#! /bin/bash
echo "Éxecution...">> "/home/francois/Bureau/out.txt"
#----------------------------------------
1) Mon problème, c'est que, lorsque j'insère ma clé usb, j'ai bien un
fichier « out.txt » qui est crée sur le Bureau mais il contient 11 fois
la ligne « Éxecution... » ? J'en conclus que le script « go.bash » a été
lancé 11 fois, non ? Pourquoi ? J'imaginais qu'il y aurait une seule
exécution ?
Une fois que j'aurais résolu ce problème, j'aurais d'autres obstacles à
surmonter sur lesquels je n'ai pas trop d'idée :
Bonjour à tous,
Je suis sous Debian Squeeze avec Gnome version "2.3". Je voudrais que,
juste après avoir branché une clé usb particulière, la commande suivante
soit exécutée :
rsync -ax --progress --delete /dossier/source/ /media/ma-cle/cible/
afin de synchroniser un dossier « cible » de ma clé usb avec un dossier
« source » de mon PC.
Voilà où j'en suis pour l'instant. J'ai crée le fichier «
101-MY-key-save.rules » dans le dossier « /etc/udev/rules.d » et ce
fichier contient cette ligne là :
ACTION=="add", ATTRS{product}=="Cruzer",
ATTRS{serial}=="445671168F907F84", RUN+="/home/francois/Bureau/go.bash"
C'était juste un test idiot où le script go.bash est le suivant :
#----------------------------------------
#! /bin/bash
echo "Éxecution...">> "/home/francois/Bureau/out.txt"
#----------------------------------------
1) Mon problème, c'est que, lorsque j'insère ma clé usb, j'ai bien un
fichier « out.txt » qui est crée sur le Bureau mais il contient 11 fois
la ligne « Éxecution... » ? J'en conclus que le script « go.bash » a été
lancé 11 fois, non ? Pourquoi ? J'imaginais qu'il y aurait une seule
exécution ?
Une fois que j'aurais résolu ce problème, j'aurais d'autres obstacles à
surmonter sur lesquels je n'ai pas trop d'idée :
Bonjour à tous,
Je suis sous Debian Squeeze avec Gnome version "2.3". Je voudrais que,
juste après avoir branché une clé usb particulière, la commande suivante
soit exécutée :
rsync -ax --progress --delete /dossier/source/ /media/ma-cle/cible/
afin de synchroniser un dossier « cible » de ma clé usb avec un dossier
« source » de mon PC.
Voilà où j'en suis pour l'instant. J'ai crée le fichier «
101-MY-key-save.rules » dans le dossier « /etc/udev/rules.d » et ce
fichier contient cette ligne là :
ACTION=="add", ATTRS{product}=="Cruzer",
ATTRS{serial}=="445671168F907F84", RUN+="/home/francois/Bureau/go.bash"
C'était juste un test idiot où le script go.bash est le suivant :
#----------------------------------------
#! /bin/bash
echo "Éxecution...">> "/home/francois/Bureau/out.txt"
#----------------------------------------
1) Mon problème, c'est que, lorsque j'insère ma clé usb, j'ai bien un
fichier « out.txt » qui est crée sur le Bureau mais il contient 11 fois
la ligne « Éxecution... » ? J'en conclus que le script « go.bash » a été
lancé 11 fois, non ? Pourquoi ? J'imaginais qu'il y aurait une seule
exécution ?
Une fois que j'aurais résolu ce problème, j'aurais d'autres obstacles à
surmonter sur lesquels je n'ai pas trop d'idée :
Il y a une exécution à chaque fois q'udev détecte un nouveau « truc » lié à
un périphérique de nom de procuit « Cruzer » et de numéro de série
« 445671168F907F84 », mais de tels trucs, il y en a pas mal : extrémité USB,
support de stockage, partition, filesystem, etc.
2) A priori ma clé est automatiquement monté sur le dossier «
/media/KEYSAVE ». Mais comment être sûr d'exécuter le script « go.bash »
après le montage. J'ai nommé ma règle udev « 101-MY-key-save.rules » et
je pensais que la valeur 101 me garantissait que l'exécution se
produirait en dernier (ou presque).
D'une part non, c'est un ordre lexicographique qui compte, pas un ordre
numérique, donc 101 se trouve entre 10 et 11.
D'autre part, ça n'est valable
que si le montage est fait de manière synchrone par un script udev, et pas
de manière asynchrone par un environnement de bureau notifié par dbus.
Il y a une exécution à chaque fois q'udev détecte un nouveau « truc » lié à
un périphérique de nom de procuit « Cruzer » et de numéro de série
« 445671168F907F84 », mais de tels trucs, il y en a pas mal : extrémité USB,
support de stockage, partition, filesystem, etc.
2) A priori ma clé est automatiquement monté sur le dossier «
/media/KEYSAVE ». Mais comment être sûr d'exécuter le script « go.bash »
après le montage. J'ai nommé ma règle udev « 101-MY-key-save.rules » et
je pensais que la valeur 101 me garantissait que l'exécution se
produirait en dernier (ou presque).
D'une part non, c'est un ordre lexicographique qui compte, pas un ordre
numérique, donc 101 se trouve entre 10 et 11.
D'autre part, ça n'est valable
que si le montage est fait de manière synchrone par un script udev, et pas
de manière asynchrone par un environnement de bureau notifié par dbus.
Il y a une exécution à chaque fois q'udev détecte un nouveau « truc » lié à
un périphérique de nom de procuit « Cruzer » et de numéro de série
« 445671168F907F84 », mais de tels trucs, il y en a pas mal : extrémité USB,
support de stockage, partition, filesystem, etc.
2) A priori ma clé est automatiquement monté sur le dossier «
/media/KEYSAVE ». Mais comment être sûr d'exécuter le script « go.bash »
après le montage. J'ai nommé ma règle udev « 101-MY-key-save.rules » et
je pensais que la valeur 101 me garantissait que l'exécution se
produirait en dernier (ou presque).
D'une part non, c'est un ordre lexicographique qui compte, pas un ordre
numérique, donc 101 se trouve entre 10 et 11.
D'autre part, ça n'est valable
que si le montage est fait de manière synchrone par un script udev, et pas
de manière asynchrone par un environnement de bureau notifié par dbus.
Du coup, en étant plus spécifique dans la règle, et en vous limitant au
sous-système "block" et à l'identifiant "sd*1" (sdb1, sdc1, etc.), pour
désigner la 1ère partition de votre clef (si elle est partitionnée ainsi
tout au moins), on a la ligne suivante, qui ne devrait "matcher" qu'une
seule fois et provoquer, du coup, une seule exécution de votre script:
KERNEL=="sd*1", SUBSYSTEMS=="usb", SUBSYSTEM=="block", ACTION=="add",
ATTRS{product}=="Cruzer", ATTRS{serial}=="445671168F907F84",
RUN+="/home/francois/Bureau/go.bash"
Une fois que j'aurais résolu ce problème, j'aurais d'autres obstacles à
surmonter sur lesquels je n'ai pas trop d'idée :
On verra en temps utile... ;)
Du coup, en étant plus spécifique dans la règle, et en vous limitant au
sous-système "block" et à l'identifiant "sd*1" (sdb1, sdc1, etc.), pour
désigner la 1ère partition de votre clef (si elle est partitionnée ainsi
tout au moins), on a la ligne suivante, qui ne devrait "matcher" qu'une
seule fois et provoquer, du coup, une seule exécution de votre script:
KERNEL=="sd*1", SUBSYSTEMS=="usb", SUBSYSTEM=="block", ACTION=="add",
ATTRS{product}=="Cruzer", ATTRS{serial}=="445671168F907F84",
RUN+="/home/francois/Bureau/go.bash"
Une fois que j'aurais résolu ce problème, j'aurais d'autres obstacles à
surmonter sur lesquels je n'ai pas trop d'idée :
On verra en temps utile... ;)
Du coup, en étant plus spécifique dans la règle, et en vous limitant au
sous-système "block" et à l'identifiant "sd*1" (sdb1, sdc1, etc.), pour
désigner la 1ère partition de votre clef (si elle est partitionnée ainsi
tout au moins), on a la ligne suivante, qui ne devrait "matcher" qu'une
seule fois et provoquer, du coup, une seule exécution de votre script:
KERNEL=="sd*1", SUBSYSTEMS=="usb", SUBSYSTEM=="block", ACTION=="add",
ATTRS{product}=="Cruzer", ATTRS{serial}=="445671168F907F84",
RUN+="/home/francois/Bureau/go.bash"
Une fois que j'aurais résolu ce problème, j'aurais d'autres obstacles à
surmonter sur lesquels je n'ai pas trop d'idée :
On verra en temps utile... ;)
Ok, je vois. Personnellement, je pensais que justement, avec le numéro
de série, j'étais globalement sûr que ça ne concernerait que ma clé usb.
Ça veut dire que le montage automatique de ma clé n'est pas géré par
udev mais par Gnome et cela indépendamment de udev, c'est ça ?
Par ailleurs, je viens de
regarder la page man de udev et ceci semble indiquer que je ne vais pas
dans la bonne direction :
« RUN : Add a program to the list of programs to be executed for a
specific device. This can only be used for very short running tasks.
Running an event process for a long period of time may block all further
events for this or a dependent device. Long running tasks need to be
immediately detached from the event process itself. »
Ça aussi, ça ne va pas dans le bon sens pour mon problème car la
synchronisation des dossiers ne sera pas souvent a priori une tâche très
courte dans son exécution.
Ok, je vois. Personnellement, je pensais que justement, avec le numéro
de série, j'étais globalement sûr que ça ne concernerait que ma clé usb.
Ça veut dire que le montage automatique de ma clé n'est pas géré par
udev mais par Gnome et cela indépendamment de udev, c'est ça ?
Par ailleurs, je viens de
regarder la page man de udev et ceci semble indiquer que je ne vais pas
dans la bonne direction :
« RUN : Add a program to the list of programs to be executed for a
specific device. This can only be used for very short running tasks.
Running an event process for a long period of time may block all further
events for this or a dependent device. Long running tasks need to be
immediately detached from the event process itself. »
Ça aussi, ça ne va pas dans le bon sens pour mon problème car la
synchronisation des dossiers ne sera pas souvent a priori une tâche très
courte dans son exécution.
Ok, je vois. Personnellement, je pensais que justement, avec le numéro
de série, j'étais globalement sûr que ça ne concernerait que ma clé usb.
Ça veut dire que le montage automatique de ma clé n'est pas géré par
udev mais par Gnome et cela indépendamment de udev, c'est ça ?
Par ailleurs, je viens de
regarder la page man de udev et ceci semble indiquer que je ne vais pas
dans la bonne direction :
« RUN : Add a program to the list of programs to be executed for a
specific device. This can only be used for very short running tasks.
Running an event process for a long period of time may block all further
events for this or a dependent device. Long running tasks need to be
immediately detached from the event process itself. »
Ça aussi, ça ne va pas dans le bon sens pour mon problème car la
synchronisation des dossiers ne sera pas souvent a priori une tâche très
courte dans son exécution.
Le 01/11/2011 18:49, Nicolas George a écrit :D'autre part, ça n'est valable
que si le montage est fait de manière synchrone par un script udev, et pas
de manière asynchrone par un environnement de bureau notifié par dbus.
Je ne suis pas sûr d'avoir compris cette phrase.
Ça veut dire que le montage automatique de ma clé n'est pas géré par
udev mais par Gnome et cela indépendamment de udev, c'est ça ?
Si c'est ça, alors udev ne serait pas la bonne piste pour réaliser ma
synchronisation automatique de dossiers ? Par ailleurs, je viens de
regarder la page man de udev et ceci semble indiquer que je ne vais pas
dans la bonne direction :
« RUN : Add a program to the list of programs to be executed for a
specific device. This can only be used for very short running tasks.
Running an event process for a long period of time may block all further
events for this or a dependent device. Long running tasks need to be
immediately detached from the event process itself. »
Ça aussi, ça ne va pas dans le bon sens pour mon problème car la
synchronisation des dossiers ne sera pas souvent a priori une tâche très
courte dans son exécution.
Le 01/11/2011 18:49, Nicolas George a écrit :
D'autre part, ça n'est valable
que si le montage est fait de manière synchrone par un script udev, et pas
de manière asynchrone par un environnement de bureau notifié par dbus.
Je ne suis pas sûr d'avoir compris cette phrase.
Ça veut dire que le montage automatique de ma clé n'est pas géré par
udev mais par Gnome et cela indépendamment de udev, c'est ça ?
Si c'est ça, alors udev ne serait pas la bonne piste pour réaliser ma
synchronisation automatique de dossiers ? Par ailleurs, je viens de
regarder la page man de udev et ceci semble indiquer que je ne vais pas
dans la bonne direction :
« RUN : Add a program to the list of programs to be executed for a
specific device. This can only be used for very short running tasks.
Running an event process for a long period of time may block all further
events for this or a dependent device. Long running tasks need to be
immediately detached from the event process itself. »
Ça aussi, ça ne va pas dans le bon sens pour mon problème car la
synchronisation des dossiers ne sera pas souvent a priori une tâche très
courte dans son exécution.
Le 01/11/2011 18:49, Nicolas George a écrit :D'autre part, ça n'est valable
que si le montage est fait de manière synchrone par un script udev, et pas
de manière asynchrone par un environnement de bureau notifié par dbus.
Je ne suis pas sûr d'avoir compris cette phrase.
Ça veut dire que le montage automatique de ma clé n'est pas géré par
udev mais par Gnome et cela indépendamment de udev, c'est ça ?
Si c'est ça, alors udev ne serait pas la bonne piste pour réaliser ma
synchronisation automatique de dossiers ? Par ailleurs, je viens de
regarder la page man de udev et ceci semble indiquer que je ne vais pas
dans la bonne direction :
« RUN : Add a program to the list of programs to be executed for a
specific device. This can only be used for very short running tasks.
Running an event process for a long period of time may block all further
events for this or a dependent device. Long running tasks need to be
immediately detached from the event process itself. »
Ça aussi, ça ne va pas dans le bon sens pour mon problème car la
synchronisation des dossiers ne sera pas souvent a priori une tâche très
courte dans son exécution.
Mais personnellement, je pense que c'est une idée plutôt risquée d'un point
de vue utilisabilité : une synchronisation qui se lance en tâche de fond,
immédiatement quand on branche un périphérique, c'est un coup à se faire des
ennuis un jour où on est pressé.
Mais personnellement, je pense que c'est une idée plutôt risquée d'un point
de vue utilisabilité : une synchronisation qui se lance en tâche de fond,
immédiatement quand on branche un périphérique, c'est un coup à se faire des
ennuis un jour où on est pressé.
Mais personnellement, je pense que c'est une idée plutôt risquée d'un point
de vue utilisabilité : une synchronisation qui se lance en tâche de fond,
immédiatement quand on branche un périphérique, c'est un coup à se faire des
ennuis un jour où on est pressé.
Tu as mis ATTRS, qui dit de chercher dans les attributs de tous les
périphériques sous-tendant le nouvel élément détecté : support, contrôleur,
etc. L'autre possibilité est de mettre ATTR, mais ça ne marchera pas, parce
que le numéro de série est une caractéristique du support, pas de la
partition que tu veux monter.
Ça veut dire que le montage automatique de ma clé n'est pas géré par
udev mais par Gnome et cela indépendamment de udev, c'est ça ?
Probablement par Gnome, si c'est ce que tu utilises Gnome, et après
notification par udev à travers dbus : une règle udev (ou le fonctionnement
normal, je n'ai pas vérifié) dit d'envoyer un message sur dbus, et ton
bureau récupère la notification.
Ça aussi, ça ne va pas dans le bon sens pour mon problème car la
synchronisation des dossiers ne sera pas souvent a priori une tâche très
courte dans son exécution.
Il suffit de la lancer en tâche de fond depuis le script que tu invoques par
udev.
Mais personnellement, je pense que c'est une idée plutôt risquée d'un point
de vue utilisabilité : une synchronisation qui se lance en tâche de fond,
immédiatement quand on branche un périphérique, c'est un coup à se faire des
ennuis un jour où on est pressé.
Il vaudrait mieux, à mon avis, viser un raccourci très rapide pour lancer la
synchronisation manuellement, ou au pire semi-automatiquement, et avec un
retour visuel de la progression.
Tu as mis ATTRS, qui dit de chercher dans les attributs de tous les
périphériques sous-tendant le nouvel élément détecté : support, contrôleur,
etc. L'autre possibilité est de mettre ATTR, mais ça ne marchera pas, parce
que le numéro de série est une caractéristique du support, pas de la
partition que tu veux monter.
Ça veut dire que le montage automatique de ma clé n'est pas géré par
udev mais par Gnome et cela indépendamment de udev, c'est ça ?
Probablement par Gnome, si c'est ce que tu utilises Gnome, et après
notification par udev à travers dbus : une règle udev (ou le fonctionnement
normal, je n'ai pas vérifié) dit d'envoyer un message sur dbus, et ton
bureau récupère la notification.
Ça aussi, ça ne va pas dans le bon sens pour mon problème car la
synchronisation des dossiers ne sera pas souvent a priori une tâche très
courte dans son exécution.
Il suffit de la lancer en tâche de fond depuis le script que tu invoques par
udev.
Mais personnellement, je pense que c'est une idée plutôt risquée d'un point
de vue utilisabilité : une synchronisation qui se lance en tâche de fond,
immédiatement quand on branche un périphérique, c'est un coup à se faire des
ennuis un jour où on est pressé.
Il vaudrait mieux, à mon avis, viser un raccourci très rapide pour lancer la
synchronisation manuellement, ou au pire semi-automatiquement, et avec un
retour visuel de la progression.
Tu as mis ATTRS, qui dit de chercher dans les attributs de tous les
périphériques sous-tendant le nouvel élément détecté : support, contrôleur,
etc. L'autre possibilité est de mettre ATTR, mais ça ne marchera pas, parce
que le numéro de série est une caractéristique du support, pas de la
partition que tu veux monter.
Ça veut dire que le montage automatique de ma clé n'est pas géré par
udev mais par Gnome et cela indépendamment de udev, c'est ça ?
Probablement par Gnome, si c'est ce que tu utilises Gnome, et après
notification par udev à travers dbus : une règle udev (ou le fonctionnement
normal, je n'ai pas vérifié) dit d'envoyer un message sur dbus, et ton
bureau récupère la notification.
Ça aussi, ça ne va pas dans le bon sens pour mon problème car la
synchronisation des dossiers ne sera pas souvent a priori une tâche très
courte dans son exécution.
Il suffit de la lancer en tâche de fond depuis le script que tu invoques par
udev.
Mais personnellement, je pense que c'est une idée plutôt risquée d'un point
de vue utilisabilité : une synchronisation qui se lance en tâche de fond,
immédiatement quand on branche un périphérique, c'est un coup à se faire des
ennuis un jour où on est pressé.
Il vaudrait mieux, à mon avis, viser un raccourci très rapide pour lancer la
synchronisation manuellement, ou au pire semi-automatiquement, et avec un
retour visuel de la progression.
Ça aussi, ça ne va pas dans le bon sens pour mon problème car la
synchronisation des dossiers ne sera pas souvent a priori une tâche très
courte dans son exécution.
Ca, ce n'est pas vraiment un problème: la synchro et le démontage
peuvent être simplement lancés en tâche de fond par le script en
question (qui, lui, rend la main une fois le montage effectué)...
Ça aussi, ça ne va pas dans le bon sens pour mon problème car la
synchronisation des dossiers ne sera pas souvent a priori une tâche très
courte dans son exécution.
Ca, ce n'est pas vraiment un problème: la synchro et le démontage
peuvent être simplement lancés en tâche de fond par le script en
question (qui, lui, rend la main une fois le montage effectué)...
Ça aussi, ça ne va pas dans le bon sens pour mon problème car la
synchronisation des dossiers ne sera pas souvent a priori une tâche très
courte dans son exécution.
Ca, ce n'est pas vraiment un problème: la synchro et le démontage
peuvent être simplement lancés en tâche de fond par le script en
question (qui, lui, rend la main une fois le montage effectué)...
Ca, ce n'est pas vraiment un problème: la synchro et le démontage
peuvent être simplement lancés en tâche de fond par le script en
question (qui, lui, rend la main une fois le montage effectué)...
Ok, est-ce que vous voulez dire un truc comme ça par exemple ?
#------------------------------------
#! /bin/bash
# Supposons que la clé usb soit /dev/sdc
Ca, ce n'est pas vraiment un problème: la synchro et le démontage
peuvent être simplement lancés en tâche de fond par le script en
question (qui, lui, rend la main une fois le montage effectué)...
Ok, est-ce que vous voulez dire un truc comme ça par exemple ?
#------------------------------------
#! /bin/bash
# Supposons que la clé usb soit /dev/sdc
Ca, ce n'est pas vraiment un problème: la synchro et le démontage
peuvent être simplement lancés en tâche de fond par le script en
question (qui, lui, rend la main une fois le montage effectué)...
Ok, est-ce que vous voulez dire un truc comme ça par exemple ?
#------------------------------------
#! /bin/bash
# Supposons que la clé usb soit /dev/sdc