Script de reco résistant à toute épreuves :-)...

Forum traitant de la distribution sécurisée montante nommée IP cop et basée sur la distribution Smoothwall. C'est à l'heure actuelle le forum le plus actif du site.

Modérateur: modos Ixus

Messagepar Gesp » 06 Déc 2003 15:10

...et j'en ai connu quelques unes ces derniers jours sur le plan de la disponibilité de ma ligne ADSL. <BR>Donc j'ai pu tester et améliorer. <BR> <BR>Attention le script est très très tétu, <!-- BBCode Start --><B>il essaye de se reconnecter jusqu'à ce qu'il y arrive</B><!-- BBCode End -->, donc <!-- BBCode Start --><B>vous prenez vos responsabilités avec un modem 56K sur ligne analogique ou RNIS concernant le nombre de tentatives de reconnexion</B><!-- BBCode End --> (il peut y avoir une incidence sur votre facture télécom suivant votre forfait). <BR> <BR>Si l'option persistant n'est pas sélectionné dans la configuration par l'interface web, cela ne changera rien à priori. <BR>Je conseillerais de mettre le nombre maximum d'essai vers 3/5 (particulièrement en PPPoE et/ou avec un modem usb). De celle manière, si la reconnexion automatique par l'option persist échoue, le script prend rapidement le relais et relance rc.red. <BR>Pour les modems usb, cela permet de les réinitialiser/resynchroniser, ce que le speedtouch usb et le eci usb ne savent pas faire d'eux-mêmes. <BR> <BR> <BR> <BR>Applicable en V1.4.0 ou V1.3.0 mais il y a de petits détails qui changent entre les 2 <BR> <BR>Il faut modifier /etc/rc.red,/etc/ppp/ip-down et créer un nouveau fichier rc.connectioncheck. <BR> <BR> <BR>Les modifs sont les suivantes <!-- BBCode Start --><B>en V1.4.0a2</B><!-- BBCode End --> <BR><!-- BBCode Start --><B><!-- BBCode Start --><I>dans rc.red </I><!-- BBCode End --></B><!-- BBCode End --> <BR><!-- BBCode Start --><B>après</B><!-- BBCode End --> <BR> &log ("ERROR: Can't start RED when it's still active"); <BR> exit 1; <BR> } <BR> <BR>ajouter <BR> if ($pppsettings{'RECONNECTION'} eq 'persistent') { <BR> system ('/bin/touch', "${swroot}/red/keepconnected"); <BR> system ('/etc/rc.d/rc.connectioncheck &'); <BR> } <BR> <BR><!-- BBCode Start --><B>après</B><!-- BBCode End --> <BR> unlink "${swroot}/red/resolv.conf"; <BR>ajouter <BR> unlink "${swroot}/red/keepconnected"; <BR> <BR><!-- BBCode Start --><B><!-- BBCode Start --><I>dans /etc/ppp/ip-down</I><!-- BBCode End --></B><!-- BBCode End --> <BR><!-- BBCode Start --><B>après</B><!-- BBCode End --> <BR>system "/bin/echo -en a >/dev/console"; <BR> sleep 1; <BR>system "/bin/echo -en a >/dev/console"; <BR> <BR>ajouter <BR> <BR>if ( -e "/var/ipcop/red/keepconnected") { <BR> system ('/etc/rc.d/rc.connectioncheck &'); <BR>} <BR> <BR><!-- BBCode Start --><B><!-- BBCode Start --><I>le fichier rc.connectioncheck contient</I><!-- BBCode End --></B><!-- BBCode End --> <BR>#!/bin/bash <BR># <BR># rc.connectioncheck <BR> <BR> <BR>eval $(/usr/local/bin/readhash /var/ipcop/ppp/settings) <BR> <BR> <BR># wait until pppd has started (and usb/pci modem obtained syncro if necessary) <BR>/bin/sleep 65 <BR> <BR>if [ -e "/var/ipcop/red/keepconnected" -a "$RECONNECTION" = "persistent" ]; then <BR> while [ -e "/var/run/ppp-ipcop.pid" ]; do <BR> if [ -e "/var/ipcop/red/active" ]; then <BR> # already connected directly or by persist option <BR> exit 0 <BR> fi <BR><!-- BBCode Start --><B> /bin/sleep 10</B><!-- BBCode End --> <BR> done <BR> <BR> echo "Wait before new connection attempt" <BR> /bin/sleep 60 <BR> /etc/rc.d/rc.red start <BR>fi <BR>copier le fichier dans /etc/rc.d et faire un chmod 755 /etc/rc.d/rc.connectioncheck <BR> <BR> <BR> <BR> <BR><!-- BBCode Start --><B><!-- BBCode Start --><I>en V1.3.0</I><!-- BBCode End --></B><!-- BBCode End --> <BR> <BR>Sur le principe, cela marchera aussi en V1.3.0 mais pas dans quelques détails <BR>Il faut : <BR>- remplacer dans /etc/ppp/ip-down <BR>eval $(/usr/local/bin/readhash /var/ipcop/ppp/settings) <BR>par <BR>./var/ipcop/ppp/settings <BR> <BR>- et remplacer dans /etc/rc.red et /etc/ppp/ip-down "$RECONNECTION" = "persistent" par "$PERSISTENT"='on' <BR> <BR>rectifié le mauvais placement du sleep à l'intérieur du if/fi au lieu d'être à l'extérieur <BR> <BR>vous avez : <BR>"$PERSISTENT"='on' si Persistant est une case à cocher jusqu'en V1.4.0a1 <BR>"$RECONNECTION" = "persistent" si Persistant est un bouton radio =>après V1.4.0a1 <BR> <BR>merci à pierre pour ses remarques <BR>j'ai remodifié pour supprimer les commentaires rendant les bips silencieux<BR><BR><font size=-2></font>
Avatar de l’utilisateur
Gesp
Amiral
Amiral
 
Messages: 4481
Inscrit le: 29 Déc 2002 01:00

Messagepar Fesch » 06 Déc 2003 15:21

Voilà, j'ai mis toutes tes modifs en place, voyons voir ce que cela donne. Est-ce qu'il faut impérativement rédémarrer IpCOP? Je dirais non, mais c'est toi le grand mâitre .... <BR> <BR>en tout cas un grand <IMG SRC="images/smiles/icon_up.gif"> & <IMG SRC="images/smiles/icon_bise.gif">
Pourquoi lis-tu ceci???
Avatar de l’utilisateur
Fesch
Amiral
Amiral
 
Messages: 2505
Inscrit le: 11 Sep 2003 00:00
Localisation: Luxembourg

Messagepar shadowman » 06 Déc 2003 15:45

et euh, ca marche pr la 1.4.0a2 ( compilée a la fin du mois denier, vers le 20 je crois ) ? paske elle souffre pas bcp du pb des deco ( 2 fois en 2 semaines et demies chez wanamou ), mais qd ca arrive c aussi bien si ca peut repartir tt seul...
"Un homme prêt à sacrifier une once de liberté au profit de sa sécurité ne mérite pas cette liberté."
A. LINCOLN
Avatar de l’utilisateur
shadowman
Aspirant
Aspirant
 
Messages: 115
Inscrit le: 24 Avr 2003 00:00

Messagepar Gesp » 06 Déc 2003 15:47

Il faut juste arrêter et redémarrer la connexion pour créer la variable mémorisant le fait que la reconnexion doit se faire. <BR> <BR>A priori, c'est presque à toute épreuve, cela m'a permis d'être reconnecté automatiquement après plusieurs heures de panne ADSL en PPPoE. <BR> <BR>Il y a bien un cas ou il se pourrait que cela ne reconnecte pas si on a la même panne que j'ai eu (authentification impossible). <BR>Avec le client PPPoA du sagem800, pppd continue de fonctionner même après avoir signalé les erreurs LCP sans jamais s'arrêter. <BR> <BR>Enfin je préfèrerais ne pas avoir la panne à nouveau que de pouvoir vérifier. <IMG SRC="images/smiles/icon_lol.gif">
Avatar de l’utilisateur
Gesp
Amiral
Amiral
 
Messages: 4481
Inscrit le: 29 Déc 2002 01:00

Messagepar Gesp » 06 Déc 2003 15:49

Cela fonctionne pour toutes les versions entre la V1.3.0 et la V1.4 actuelle mais comme il y a eu 2 changements, dans les versions intermédiaires, il peut y avoir un seul ou les 2 changements à faire.
Avatar de l’utilisateur
Gesp
Amiral
Amiral
 
Messages: 4481
Inscrit le: 29 Déc 2002 01:00

Messagepar Pierre34 » 06 Déc 2003 19:06

Super on vas voir ca <BR> <BR>Merci bien <BR>(t'aurais pas la meme pour le VPN <IMG SRC="images/smiles/icon_smile.gif"> ) <BR> <BR>Pierre <BR> <BR>PS : Dans rc.connectioncheck le /bin/sleep 10 après le exit m'etonne <BR> <BR>if [ -e "/var/ipcop/red/active" ]; then <BR># already connected directly or by persist option <BR>exit 0 <BR>/bin/sleep 10 <BR>fi <BR>
Avatar de l’utilisateur
Pierre34
Second Maître
Second Maître
 
Messages: 44
Inscrit le: 13 Juin 2003 00:00
Localisation: Montpellier

Messagepar Gesp » 06 Déc 2003 19:27

Tu as raison, j'ai rectifié <BR> <BR>Je ne sais pas pourquoi cette ligne s'est retrouvée là, elle était avant le if sur mon IPCop. <IMG SRC="images/smiles/icon_biggrin.gif">
Avatar de l’utilisateur
Gesp
Amiral
Amiral
 
Messages: 4481
Inscrit le: 29 Déc 2002 01:00

Messagepar leso » 06 Déc 2003 21:56

ca serait possible d'avoir les numéros de ligne pour modifier, je trouve pas les valeurs <IMG SRC="images/smiles/icon_biggrin.gif">
MCITP Windows Server 2008, Enterprise Administrator
MCITP Windows Server 2008, Server Administrator
MCITP Exchange 2007 Enterprise Messaging Administrator
Avatar de l’utilisateur
leso
Vice-Amiral
Vice-Amiral
 
Messages: 648
Inscrit le: 03 Avr 2003 00:00
Localisation: Paris

Messagepar Gesp » 06 Déc 2003 23:37

C'est pas évident, il y a plusieurs V1.4.0a2 qui circulent dont je ne sais plus laquelle est laquelle, une V1.4.0a1 sans parler des V1.3.1 et de la V1.3.0. <BR> <BR>Quelle ligne tu ne retrouves pas?
Avatar de l’utilisateur
Gesp
Amiral
Amiral
 
Messages: 4481
Inscrit le: 29 Déc 2002 01:00

Messagepar leso » 07 Déc 2003 00:43

&log ("ERROR: Can't start RED when it's still active"); <BR>exit 1; <BR>} <BR> <BR>celel ci j'ai du mal
MCITP Windows Server 2008, Enterprise Administrator
MCITP Windows Server 2008, Server Administrator
MCITP Exchange 2007 Enterprise Messaging Administrator
Avatar de l’utilisateur
leso
Vice-Amiral
Vice-Amiral
 
Messages: 648
Inscrit le: 03 Avr 2003 00:00
Localisation: Paris

Messagepar Pierre34 » 07 Déc 2003 01:18

dans vi tu tapes /RED ou /error RED et retour bref ce que tu cherches, te positionne sur le mot directement pour les recherches suivantes taper simplement / et retour. (? a la place du / fait une recherche vers le haut) <BR>
Avatar de l’utilisateur
Pierre34
Second Maître
Second Maître
 
Messages: 44
Inscrit le: 13 Juin 2003 00:00
Localisation: Montpellier

Messagepar Pierre34 » 07 Déc 2003 01:24

Pour éviter a d'autres comme moi qui ne connaissent le perl d'avoir a se taper un cours d'introduction a perl pour voir les variables. <BR>Je suis en 1.4.0.a1 <BR>Je pense qu'il faut dans /var/ipcop/ppp/settings rajouter une ligne a la fin avec <BR>RECONNECTION=persistent <BR>Moi j'ai visiblement l'ancienne façon une variable PERSISTENT=on <BR> <BR>
Avatar de l’utilisateur
Pierre34
Second Maître
Second Maître
 
Messages: 44
Inscrit le: 13 Juin 2003 00:00
Localisation: Montpellier

Messagepar Gesp » 07 Déc 2003 02:22

Oui j'ai rectifié aussi dans le premier post. <BR> <BR>Je pensais que cela faisait plus longtemps que j'avais fait la modif. <BR> <BR>Il faut dire que la V1.4.0a2 officielle se fait attendre depuis plus de 2 mois, ce qui est assez exceptionnel, d'habitude, c'est plutot 3 semaines entre 2 versions de développement.
Avatar de l’utilisateur
Gesp
Amiral
Amiral
 
Messages: 4481
Inscrit le: 29 Déc 2002 01:00

Messagepar leso » 07 Déc 2003 16:11

juste comme ca c normal que j'avais : <BR>system "/bin/echo -en a >/dev/console"; <BR>sleep 1; <BR># system "/bin/echo -en a >/dev/console"; <BR> <BR>j'ai rajouté un comme dans le post
MCITP Windows Server 2008, Enterprise Administrator
MCITP Windows Server 2008, Server Administrator
MCITP Exchange 2007 Enterprise Messaging Administrator
Avatar de l’utilisateur
leso
Vice-Amiral
Vice-Amiral
 
Messages: 648
Inscrit le: 03 Avr 2003 00:00
Localisation: Paris

Messagepar Gesp » 07 Déc 2003 16:33

non il ne faut pas c'est un bug du forum qui rajoute une barre à chaque fois
Avatar de l’utilisateur
Gesp
Amiral
Amiral
 
Messages: 4481
Inscrit le: 29 Déc 2002 01:00

Suivant

Retour vers IPCop

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron