# [TIPS] Reconnexion automatique adsl

## bestel

Ces derniers temps ma connexion adsl a vraiment beaucoup de problemes. Ca n'arretes pas de se déconnecter.

J'ai cherché dans le forum pour voir s'il n'y avait pas une facon d'activer la reconnexion automatique. J'ai lu qu'il fallait mettre l'option persist dans le fichier de config de ppp.

Bein ce qui est bizarre, c'est que cette option y est déjà. J'ai décidé de me faire un petit script qui test si ma connexion est vraiment active et qui la relance si il y a un probleme.

/etc/init.d/adslautoconnect

```

#!/sbin/runscript

opts="start stop check restart"

start() {

  ebegin "Starting adslautoconnect"

  eend

}

stop() {

  ebegin "Stopping adslautoconnect"

  eend

}

check() {

  if echo `/etc/init.d/adslautoconnect status` | grep "started";

  then

    einfo "le service de reconnexion est lancé, on regarde si la connexion est bien active"

    if ! ping -c 1 ${PING};

    then

      einfo "la connexion n'est pas active, on la relance"

      ${RESTART} restart;

      # Si la connexion est devenu active, on lance la commande

      if ping -c 1 ${PING};

      then

        ${COMMAND};

      fi;

    fi;

  else

    einfo "service arreté";

  fi;

}

```

/etc/conf.d/adslautoconnect

```

# Config file for the adslautoconnect service

# server to ping

PING="free.fr"

# command to execute when connected

COMMAND="esdplay --server=flux:2345 /usr/local/share/sounds/adslautoconnect/gdpcnend.wav"

# script de démarrage d'adsl

RESTART="/etc/init.d/eagle-adsl"

```

/etc/init.d/adslautoconnect start, ca démarre le service de reconnexion automatique

/etc/init.d/adslautoconnect stop, ca l'arrete.

/etc/init.d/adslauconnect check ca relance la connexion si le service de connexion automatique est démarré.

Ensuite, il faut dire au cron d'éffectuer le test a intervalle de temps réguler.

J'ai rajouté cette ligne dans /etc/crontab

```

* * * * *       root    /etc/init.d/adslautoconnect check

```

Elle dit de faire la vérification toute les minute.

Ce n'est surement pas très bien écrit... Ca n'est peut etre utile a personne... mais au cas ou.  :Smile:  Vous en faites ce que vous voulez

----------

## lefakir

Ben ça peut me servir et on va tester !

 *Quote:*   

> .. Ca n'est peut etre utile a personne..

 

faut pas dire que ça voyons

----------

## colito

Merci pour tes scripts   :Very Happy: 

Ils me seront très utiles...j'avais la flemme d'écrire ce ke tu viens de faire, donc ça tombe pile-poil!   :Wink: 

Merci encore!

----------

## kelgarath

j'ai un pote qui va etre content   :Very Happy: 

----------

## ALK13

Merci beaucoup bestel pour ton script... Ca marceh nikel... il y a seulementun truc concernant la tache cron associée... A chaque fois qu'elle va s'executée ca va laisser un message dans /var/log/messages et donc toute les minutes dans ce cas!... Y a t'il un moyen d'eviter ca ? 

++

ALK13

----------

## kernelsensei

tu dis a syslog-ng d'ignorer le message en question ? (si t'as syslog-ng , mais ca doit marcher avec metalog et autres ...)

----------

## ALK13

mais comment fais tu cela?

----------

## kernelsensei

 *ALK13 wrote:*   

> mais comment fais tu cela?

 

tu peux me donner le message exact, comme ca je peux essayer de te donner la regle tout de suite ...

mais je propose un truc du genre :

```
#Les sources :

source src { unix-stream("/dev/log"); internal(); pipe("/proc/kmsg"); };

#Les destinations :

destination messages { file("/var/log/messages"); };

#Les filtres :

filter messages { not match("adslautoconnect"); };

#Les logs :

log {

    source(src);

    filter(messages);

    destination(messages);

    };

```

EDIT: modifie avec le bon message suite au post de ALK13!!

----------

## ALK13

```
Mar 25 23:10:01 angus /usr/sbin/cron[29478]: (root) CMD (   /etc/init.d/adslautoconnect check )

Mar 25 23:11:01 angus /usr/sbin/cron[29547]: (root) CMD (   /etc/init.d/adslautoconnect check )

Mar 25 23:12:01 angus /usr/sbin/cron[29605]: (root) CMD (   /etc/init.d/adslautoconnect check )

Mar 25 23:13:01 angus /usr/sbin/cron[29664]: (root) CMD (   /etc/init.d/adslautoconnect check )

Mar 25 23:14:01 angus /usr/sbin/cron[29726]: (root) CMD (   /etc/init.d/adslautoconnect check )

Mar 25 23:15:01 angus /usr/sbin/cron[29784]: (root) CMD (   /etc/init.d/adslautoconnect check )

Mar 25 23:16:01 angus /usr/sbin/cron[29842]: (root) CMD (   /etc/init.d/adslautoconnect check )

Mar 25 23:17:01 angus /usr/sbin/cron[29896]: (root) CMD (   /etc/init.d/adslautoconnect check )

Mar 25 23:18:01 angus /usr/sbin/cron[29955]: (root) CMD (   /etc/init.d/adslautoconnect check )

```

vala les messages que ca met dans /var/log/messages

----------

