Re: [CBLX] question script après DHCP

[ Thread Index | Date Index | More lists.tuxfamily.org/carrefourblinux Archives ]


oui c'est pas facile.
le truc c'est que pour l'instant je ne me connecte pas, car j'ai pas l'ip!!
Le but c'est que quand j'arrive dans un milieu inconnu, je me plug à la box ou le routeur avec dhcp qui me donne mon ip et la carte embarqué me donne donc son ip avec espeak.
après je pourrai donc me connecter en SSH avec mon ordi local..
J'espère que j'ai été claire.
++ Math

Le 27/08/2013 09:08, Pierre Lorenzon a écrit :
Salut Mathhieu,


From: Mathieu Barbe <mathieu.barbe@xxxxxx>
Subject: Re: [CBLX] question script après DHCP
Date: Mon, 26 Aug 2013 10:45:43 +0200

coucou Pierre,
j'avais comprit ton application mais j'avais mal fait le lien
avec la mienne.
   Pour le coup je crois que c'est moi qui ne comprends pas
   exactement quelle est ta configuration. Je ne comprends pas
   où est le serveur dhcp. Pour nous mettre d'accord et surtout
   nous comprendre : Il y a la machine qu'on appellera locale et
   qui semble avoir à son bord les outils de travail type
   synthèse etc ... Et puis la machine distante. Mais où est le
   serveur dhcp qui donne l'ip ? Si tu es capable de te loguer
   en ssh sur la machine distante c'est que tu as une ip quelque
   part ? Pour moi ça suffit pour faire tourner le truc dans le
   tunnel ssh. Mais il doit y avoir encore un truc qui
   m'échappe. Pas grave par approximations successives on va
   finir par se comprendre.




Mais si j'utilise ta méthode, il faut bien que je sache
quand j'ai une ip pour pouvoir l'envoyer à l'ordinateur
local?
   Ah je crois que je comprends mieux il y a donc un troisièmùe
   laron qui distribue les ip i.e. un serveur dhcp qui va donner
   une ip à la machine distante quand tu la plugues. Il faudrait
   à ce moment-là que ta machine locale soit avertie de
   l'événement et sache quelle est cette ip. Mais pourquoi ta
   machine distante n'a-t-elle pas un nom qui puisse être résolu
   par un dns ou une ip fixe ? Note que ça résoud la question de
   transmettre l'ip à la machine locale mais pas celle de
   signaler l'événement du plug/unplug.


   Bon si j'ai complètement fantasmé sur l'organisation de ton
   réseau et que je raconte n'importe quoi fais moi un dessin !
   Euh si tu peux me le raconter en quelque mot ça sera aussi
   bien !




Du coup c'est le même prôblme qu'avant.
Sinon, serait-il possible de lancer un script en arrière
plan au démarrage qui tourne en rond et qui test un lien
réseau.
   Oui on peut toujours lancer autant de scripts qu'on veut mais
   un qui tourne en rond c'est quand-même un peu lourd pour le
   système. Vaut mieux un chron avec un délais raisonable.


   Mais on en revient à la question que je posais à Gilles :
   est-ce que le plug/unplug est un kernel event exporté quelque
   part dans un userspace ? Sinon ça va être coton de le
   capturer.

   A je pense à quelque chose, mais je te préviens Matthieu
   avant de mettre en oeuvre une solution comme celle qui suit
   je chercherais ailleurs mais :

   chrond le daemon chron te permets de lancer un script à
   intervalle régulier.

   ping : sur une interface réseau te permets de tester du
   traffic (enfin de voir si tu peux passer des bits.) Si elle
   est branchée tu peux, sinon tu peux pas ! Donc tu l'as ta
   solution là ! Mais moi je dis c'et quand même le genre bout
   de ficelle et si on peut faire plus élégant et moins bricolo
   ça sera quand-même mieux !




Puis une fois trouvé, il s'occupe de
récupérer l'ip et de l'envoyer au tunnel ou a
espeak!!
   Humpf du coup je ne comprends plus bien ! espeak ne devrait
   pas avoir besoin de l'ip puisque il se comporte en serveur
   pas en client. Le hic dans ton système Matthieu c'est qu'il y
   a plusieurs applis client/serveur qui ont envie de tourner de
   manière un peu croisée et que le fait d'être client ou
   serveur n'est pas caractérisé par le fait de tourner sur une
   machine ou une autre. Il y aura des applis serveur sur une
   machine et des clients sur cette même et idem sur
   l'autre. Voilà pourquoi un descriptif un peu plus précis de
   ton ""usine à gaz"" nous permettrait de réfléchir plus
   efficacement.


   P.




Pensez-vous cela réalisable!
++


Le 25/08/2013 15:27, Pierre Lorenzon a écrit :
From: Gilles Touzé <gilles.touze@xxxxxxxxxxx>
Subject: Re: [CBLX] question script après DHCP
Date: Sun, 25 Aug 2013 15:19:19 +0200

Bonjour à tous,
je m'en mêle un petit peu (car je n'aurai pas Internet
demain,
ni la semaine prochaine) ; je n'interviens plus guère
sur la
liste depuis longtemps car je n'ai pas grand chose à
apporter,
mais là, je viens de résoudre un problème
similaire sur une
Ubuntu : déclencher un script à l'insertion d'une
clé usb.

Come le supposait Aldo, cela repose sur une règle
udev. Voir à
ce sujet l'article udev sur www.ubuntu-fr, c'est le mieux que
j'ai trouvé, il donnera les indications pour localiser
l'insertion de la carte réseau. Revenons à ma
clé usb ; je crée
    Bémol : il ne s'agit pas de l'insertion d'une carte
    réseau
    mais du plug/unplug d'un rj45 si j'ai bien compris. Or s'il
    est avéré que l'insertion d'une clef usb est un
    kernel event
    es-tu sûr Gilles qu'il en soit de même du
    plug/unplug d'une
    fiche RJ45 ? En effet, s'il ne s'agit pas d'un kernel event
    (et même si je ne bois pas dans mon chapeau) s'il n'est
    pas
    exporté dans le user space /sys je crois qu'il n'est pas
    visible par udev.

    Sans vouloir me faire mousser l'idée udev était
    de moi mais
    je reste persuadé, tant que Matthieu ne m'a pas
    expliqué
    vraiment pourquoi la solution par le tube ssh ne peut
    être
    envisagée qu'elle est quand-même plus simple.

    Cela dit Gilles maîtriser les règles udev
    ça peut toujours
    servir et moi je n'ai pas eu encore le courage d'apprendre
    juste parce que je n'en ai pas eu encore besoin au point de
    m'investir là-dedans.

    Profite bien de ta dernière semaine avant que la
    pédagogie ne
    te capture de nouveau !

    PIerre


le fichier /etc/udev/rules.d/81-local.rules avec pour contenu :

ACTION=="add", SUBSYSTEMS=="usb",
ATTRS{serial}=="071085501083AB2E",
RUN+="/home/gilles/.scripts_persos/sauve_PEDAGO"

L'astuce est que le script sauve_PEDAGO ne fait rien d'autre
que d'en lancer un deuxième, EN TACHE DE FOND, car le
premier
script (lancé par udev) doit se terminer pour pouvoir
poursuivre le montage de la clé (et pour le
réseau, pour que le
gestionnaire de connexion puisse faire son boulot) d'une part,
et d'autre par, la tâche qu'il lance doit pouvoir
être exécutée
APRES la fin de l'initialisation du périphérique
; afin
d'obtenir ce résultat, le script appelé (il
s'appelle
sauv_cle_PEDAGO) s'appelle lui-même récursivement
jusqu'à ce
qu'il puisse faire son boulot. Je joins le source des deux
scripts (il y a du déchet dedans, il faut trier surtout
les
commentaires), en espérant inspirer suffisamment pour
faire
avance le schmilblick.

sauv_PEDAGO :


#################################################################
#Les scripts persos sont placés dans
#/home/$user/.scripts_persos#

#################################################################

#################################################################
#La sauvegarde se fait dans /home/touze/.sauvegarde/PEDAGO/
#
#
#Script gérant la sauvegarde automatique de PEDAGO.

#################################################################

#################################################################
#Créer le fichier /etc/udev/rules.d/81-local.rules
#avec pour contenu :
#ACTION=="add", SUBSYSTEMS=="usb",
#ATTRS{serial}=="071085501083AB2E",
#RUN+="/home/gilles/.scripts_persos/sauve_PEDAGO"

#################################################################
SCRIPT=/home/gilles/.scripts_persos/sauve_clef_PEDAGO


#################################################################
#Lancer en background : ()& #

#################################################################
($SCRIPT > /tmp/sauve_clef_PEDAGO.log 2>&1 && exit 0) &


et enfin sauv_cle_PEDAGO :

#!/bin/sh

SRC_DIR="/media/gilles/PEDAGO/"
TGT_DIR="/home/gilles/Ubuntu One/PEDAGO"

synchronize () {
    echo "synchronize";
    if test -d "$SRC_DIR"; then

########################################################################################################
#On fait une sauvegarde avec backup (les anciennes versions d'un
#fichier sont conservées renommées).  #

########################################################################################################
      rsync -abvd --backup-dir=.rsync-backups --progress
      --partial-dir=.rsync-partial "$SRC_DIR" "$TGT_DIR" &&
      chown -R gilles:gilles "$TGT_DIR";
    else
    fi;
      sleep 1 && synchronize;
}


main () {
#echo "main" &&
#mkdir -p "$SRC_DIR" &&
#echo "Mounting..." &&
#mount /dev/sdb1 "$SRC_DIR" ||
#echo "Mounted !" &&
synchronize;
}

main && echo "done" && exit 0

Voilà, c'est tout ce que je peux apporter sur la
question, mais
j'espère fournir un cadre structurel utilisable. Bon
courage
pour l'adaptation, (j'avoue que personnellement, je
n'étais pas
de taille à créer ça tout seul, je me suis
fait aider par un
vrai professionnel). Mais je garantis que c'est une
façon de
procéder de bonne qualité.

Gilles.


Le 25/08/2013 14:08, Pierre Lorenzon a écrit :
From: Mathieu Barbe <mat.barbe@xxxxxxxxx>
Subject: Re: [CBLX] question script après DHCP
Date: Sun, 25 Aug 2013 11:50:24 +0200

J'ai bien compris ce que tu fais mais si j'ai pas l'ip de ma
carte je ne risque pas de faire une redirection de port en ssh.
En faite je ne vois pas trop de point commun entre ton
application et se que je veux faire.
toi tu te sert des outils d'accessibilité de ta machine
distante pour les sortir sur ta machine local.  Non ! La
     machine locale tourne le serveur speech-dispatcher avec
     festival derrière. Sur la machine distante il y a emacs
     qui
     envoie sont flux sur le port 6560 mais à travers le ssh
     le
     port 6560 est celui de la machine locale où
     écoute
     speech-dispatcher donc le son est local.




Moi la machine distante n'a pas ces outils et ma machine local
les a belle et bien.
     C'est exactement mon cas aussi.




Et j'ai pas son ip
     On n'a pas besoin de l'ip de la machine local si on redirige
     les ports dans le tube ssh.


     P.



:-)
++ Math


Mathieu Barbe
Mail: mat.barbe@xxxxxxxxx
28 rue Nicolas Chorier
38 000 Grenoble

Le 25/08/2013 05:48, Pierre Lorenzon a écrit :
From: Mathieu Barbe <mat.barbe@xxxxxxxxx>
Subject: Re: [CBLX] question script après DHCP
Date: Sat, 24 Aug 2013 22:51:08 +0200

la vrai idée c'était de lancer la synthèse
vocale espeak avec l'adresse ip en paramètre
Cela me permet de me connecter en ssh par la suite.
Car c'est sur une carte embarqué sans écran et
sans outils d'accessibilité.
Je vais étudier ce que vous m'avez répondu,
Merci.
       Bon indépendamment de ce que tu veux faire exactement ta
      question était intéressante parce que
      déclencher une action
      quelconque par rapport à l'événement
      plug/unplug d'une
      connection ethernet ça ne semble pas exotique du tout et
      tu
      n'es vraisemblablement pas le premier à vouloir faire un
      truc
      pareil.

      Pour ce que tu veux faire spécifiquement est-ce la bonne
      stratégie ? As-tu besoin que la synthèse tourne
      explicitement
      sur la carte embarquée ? Ne serait-il pas plus simple de
      faire tourner le serveur de synthèse sur la machine
      locale à
      partir de laquelle tu te connectes avec une redirection de
      port avec -R dans le ssh ? Moi c'est ce que je fais dans mon
      bureau à la fac par exemple. Dans mon bureau j'ai une
      charrette (pour ne pas dire une brouette i.e. un compaq de
      2000) mais qui peut faire tourner festival+mbrola de
      manière
      à peu près raisonnable. En revanche pour utiliser
      mes outils
      favoris je préfère travailler sur le serveur du
      labo. Et bien
      ssh -R port:port fait que dans ma session ssh les process
      lancés sur la machine distante voient leur
      requête sur le
      port donné redirigées sur la machine locale : et
      le son sort
      dans mon bureau et pas dans le local technique où il y a
      le
      serveur.

      Clair/pas clair ? fais un petit man ssh et on en reparle !

      Pierre



++ Math

Mathieu Barbe
Mail: mat.barbe@xxxxxxxxx
28 rue Nicolas Chorier
38 000 Grenoble

Le 20/08/2013 05:52, Pierre Lorenzon a écrit :
From: raphael.poitevin@xxxxxxxxx (Raphaël POITEVIN)
Subject: Re: [CBLX] question script après DHCP
Date: Mon, 19 Aug 2013 23:51:08 +0200

Mathieu Barbe <mat.barbe@xxxxxxxxx> writes:
Je veux
ex�����cuter un
script qui se
lancerait
apr�����s avoir :
brancher un
c�����ble
r�����seau,et
apr�����s
avoir
optenu mon ip avec le dhcp!
Avez-vous une
id�����e?
Peut-�����tre voir
du
c�����t�����
des
if-updown ;
des scripts
s'ex�����cutent au
moment
o����� la carte
r�����seau est
activ�����e et
d�����sactiv�����e.
       Pour moi ces scripts sont lancés par les scripts de
       démarrrage mais pas par le daemon dhcp. Cela dit il
       suffit de
       mettre la main sur un seul script qui srait exécuté
       par le
       daemon dchp au moment du plug/unplug event et de le
       customizer pour que ça marche.


       P.




--
Rapha�����l
����� Tout
chercheur
plong����� dans la
science subit
une pouss�����e de
bas en haut susceptible
de lui remonter
le moral. �����
Monsieur
Cyclop�����de

--
--
        CarrefourBLinuX MailingListe
        Pour obtenir de l'aide, envoyez le sujet  help  à:
        carrefourblinux-request@xxxxxxxxxxxxxxxxxxx
        Archives:
        http://listengine.tuxfamily.org/lists.tuxfamily.org/carrefourblinux

--
--
      CarrefourBLinuX MailingListe Pour obtenir de l'aide, envoyez le
      sujet help �:
      carrefourblinux-request@xxxxxxxxxxxxxxxxxxx
      Archives:
      http://listengine.tuxfamily.org/lists.tuxfamily.org/carrefourblinux

--
--
     CarrefourBLinuX MailingListe Pour obtenir de l'aide, envoyez le
     sujet help �:
     carrefourblinux-request@xxxxxxxxxxxxxxxxxxx
     Archives:
     http://listengine.tuxfamily.org/lists.tuxfamily.org/carrefourblinux


--
--
   CarrefourBLinuX MailingListe Pour obtenir de l'aide, envoyez le
   sujet help �: carrefourblinux-request@xxxxxxxxxxxxxxxxxxx
   Archives:
   http://listengine.tuxfamily.org/lists.tuxfamily.org/carrefourblinux



--
--
  CarrefourBLinuX MailingListe
  Pour obtenir de l'aide, envoyez le sujet  help  �   carrefourblinux-request@xxxxxxxxxxxxxxxxxxx
  Archives:
  http://listengine.tuxfamily.org/lists.tuxfamily.org/carrefourblinux


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/