Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e) (modifié)

Sinon, dans ip-down tu peux rajouter un "sleep 10" histoire de patienter 10 secondes avant de relancer la connexion...

Modifié par KewlCat

Posté(e)

euh ip-up ou ip-down?

 

il me semblait que ip-up était le script à exécuter une fois la connexion IP établie?

de toute façon, j'ai vu une option dans man pppd qui permet de rajouter une commande aux scripts ip-up et ip-down:

ipparam "sleep 10"

 

c'est bon comme ça?

 

//le maxfail 50 ne marche pas plus...On peut pas ignorer les LCP Term request envoyés par le peer? :P

Posté(e)

non, tu as parfaitement raison, c'est dans ip-down, bien sûr (ah la la... quel tête-en-l'air... ça m'apprendra à vouloir faire le malin à 2h du mat...)

pour ce qui est de ta mise en oeuvre, je ne sais pas, j'ai jamais joué avec les options de pppd...

et en ce qui concerne l'entorse au protocole que tu souhaiterais mettre en place... bin tu peux toujours recompiler un daemon pppd, tu as les sources, non ? ;-))

Posté(e)

ipparam n'a pas l'air de bien marcher tel que je l'ai écris, le demon n'attend pas 10 secondes avant de retenter une connexion. Je vais essayer dans ip-down (et pour voir si ça fonctionne, il faut que j'attende la prochaine déco, arf :P

 

Pour ce qui est de recoder le demon pppd, je sais pas pourquoi mais aujourd'hui je ne me sens pas trop de le faire... :-()

Posté(e)

bin, l'inconvénient d'ipparam, c'est qu'il lance certainement le processus en tache de fond, donc l'interêt d'un "sleep 10" en tache de fond, c'est proche de zéro :-)

Posté(e)

j'ai trouvé ici un script shell qui est censé se lancer au démarrage et surveiller en tâche de fond la présence ou non de la connexion.

Je l'ai donc bêtement copié et essaye de comprendre comment ça marche en le lançant à la main dans un premier temps.

#!/bin/sh

 

DELAY=$[ 30 * 60 ]

IFACE=ppp0

N="ppp-eciadsl"

 

if [ -e "/var/run/$N.pid" ]

then

   if [ -d "/proc/`cat /var/run/$N.pid`" ]

   then

       echo "$N already running (pid `cat /var/run/$N.pid`)" >&2

       exit 0

   fi

fi

 

le début du script a l'air de vérifier la présence ou non du processus entré dans la variable N.

 

=> déjà premier problème: alors que ma connexion est active (/var/run/ppp-eciadsl.pid existe), il ne m'affiche pas le message comme quoi la connexion est déjà active. En fait, le script ne rentre pas dans la deuxième boucle (si je mets un else echo "machintruc" après le exit 0, j'obtiens machintruc)

 

que veut dire le -d qui suit le if de la deuxième boucle? (j'ai pas trouvé sur le net)

 

(pourtant quand je fais un # ls /proc/`cat /var/run/ppp-eciadsl.pid`, j'obtiens bien le contenu du pid correspondant mais avec une erreur parce que le fichier ppp-eciadsl.pid contient 2 lignes: la première avec le pid et une deuxième avec ppp0 => ça doit être la cause du plantage mais pourquoi il a deux lignes le ppp-eciadsl.pid?)

 

suite du script

 

echo $$ >/var/run/$N.pid

trap "rm -rf /var/run/$N.pid; exit 0" SIGQUIT SIGTERM SIGUSR1 SIGINT

 

while true; do

 

   sleep $DELAY

 

   /sbin/ifconfig |grep -q $IFACE

   if [ $? -eq 0 ]

   then

           continue

   fi

 

   # On attend 2 minutes au cas où ...

   sleep 120

   /sbin/ifconfig |grep -q $IFACE

   if [ $? -eq 0 ]

   then

           continue

   fi

 

   logger -i -t $0 No ADSL ppp connection. Launching it again.

   poff adsl

   sleep 10

   killall pppoe

   sleep 2

   pon adsl

 

done

 

là j'avoue que ça me donne mal au crâne :P

=> ça sert à quoi de mettre des $$ dans /var/run§$N.pid?

=> à quoi servent les boucles if [ $? -eq 0]?

=> j'imagine que les poff adsl et pon adsl doivent appeler le fichier adsl de /etc/ppp/peers ?

 

c'est ptet des questions bêtes mais j'essaye d'apprendre, merci :-(

Posté(e)

On va commencer par le début...

 

-d ("man test" ;-)) c'est pour savoir si le fichier existe et est un directory !?! (un peu space comme test, mais bon)

-e c'est pour savoir si ça existe

-f c'est pour savoir si c'est un fichier régulier (un vrai, avec des données dedans... pas un device, un lien ou autre chose)

 

le "pourquoi y'a deux lignes" c'est parce que le process qui crée ce fichier les met ;-)

 

si tu cherches le pid d'un processus utilisant un fichier particulier, fuser est ton ami !

 

$$ c'est le pid du processus père (le shell si tu es en ligne de commande ou le pid du script si c'est dans un script)

 

$? c'est le code retour de la commande précédente (ici le grep... à savoir que grep retourne 0 s'il n'a rien trouvé)

 

poff et pon sont inconnus sur mon système (Slackware + rp-pppoe) mais il se peut que sur la distro où tu as pris ce script, ce soient les commandes lançant l'interface ppp...

Posté(e) (modifié)

:-( merci des explications Kewlcat, je vais essayer de me débrouiller avec ça (et puis si j'y arrive pas, je reviendrai à la charge :-P).

 

("man test".... oui en effet, moi je faisais "man if" :P )

 

edit: ça marche! et j'ai compris le script :-P . En fait, je lui faisais surveiller un processus fils de ppp0 (ppp-eciadsl.pid) qui n'apparait que lors d'une reconnexion (pourquoi, j'en sais rien..). Donc en surveillant ppp0.pid, ie le processus père, le script recrée la connexion lorsqu'elle disparait.

 

pon, poff et plog ont donc l'air d'être spécifiques debian

NAME

      pon, poff, plog - starts up, shuts down or lists the log of PPP connections

.../...

DESCRIPTION

      This manual page describes the pon, plog and poff scripts, which  allow

      users to control PPP connections.

 

  pon

      pon,  invoked without arguments, runs the /etc/ppp/ppp_on_boot file, if

      it exists and is  executable.  Otherwise,  a  PPP  connection  will  be

      started  using configuration from /etc/ppp/peers/provider.  This is the

      default behaviour unless an isp-name argument is given.

     

  poff

      poff closes a PPP connection. If more than one PPP  connection  exists,

      the one named in the argument to poff will be killed, e.g. poff myprovider2

 

  plog

      plog shows you the last few lines of  /var/log/ppp.log.  If  that  file

      doesn't  exist, it shows you the last few lines of your /var/log/syslog

      file, but excluding the lines not generated by pppd.  This script makes

      use  of the tail(1) command, so arguments that can be passed to tail(1)

      can also be passed to plog.

 

Il ne me reste plus qu'à le lancer en tant que demon au démarrage (parce que si je le mets dans ip-up, le script se termine en même temps qu'ip-up non?), va falloir que le regarde le /etc/ppp/ppp_on_boot ou le rc.adsl du driver du modem....

Modifié par Greywolf
Posté(e)

:-P beuh, il suffit que j'aie trouvé un script de reconnexion qui fonctionne après le dernier maxfail de pppd pour que je ne subisse plus de déconnexions sauvages.... :-(

 

Depuis lundi, plus de déco et le serveur distant ne m'envoie plus de LCP echo request, si ça se trouve ils s'auto-saturaient leur machine avec les LCP echo reply de tous les connectés :P

Rejoindre la conversation

Vous publiez en tant qu’invité. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...