Script de reconnexion

Script de reconnexion - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 26-12-2004 à 19:14:39    

Bonsoir, j'essaye de faire un script pour une reconnexion automatique car il y a des déconnexions le soir vers 18h/20h avec la freebox (affichage de ppp pendant 10 sec).
Il n'y a plus de traffic internet, et pour que ca marche je suis obligé de relancer l'interface réseau
"ifdown wlan0" et "ifup wlan0". (suis en wifi)
 
J'essaye ca :

Code :
  1. #!/bin/sh
  2. #si ping down >> reconnexion
  3. if ! ping -qc 1 www.free.fr;
  4. then echo "Reconnexion";
  5. ifdown wlan0 && ifup wlan0;
  6. else echo "Connexion ok";
  7. fi


Si ping ok ca m'affiche bien Connexion ok, donc ca fait rien, mais si la connexion est KO, ca ne fait rien, car la commande ping ne se termine pas en fait.
J'aurai aimé une option à passer à ping pour dire si au bout de 3 secondes le ping n'est pas fait, qu'il continue le script.. et donc reconnecte.
 
Et dans la crontab comment dire toutes les 30 secondes ?


Message édité par Profil supprimé le 26-12-2004 à 19:23:04
Reply

Marsh Posté le 26-12-2004 à 19:14:39   

Reply

Marsh Posté le 26-12-2004 à 20:01:08    

je suis pas sur qu'on puisse faire les secondes dans la crontab, sinon pour faire toute les minutes ca serait :
 
* * * * * /root/scripts/monscript.sh

Reply

Marsh Posté le 26-12-2004 à 20:05:46    

sinon un ping -c 1 permet de ne pas attendre éternellement. Alors en utilisant un grep bien placé tu pourras savoir ce que te renvoies le ping.
 
J'ai écrit un article dans le style ici :
http://ceyquem.free.fr/www/article [...] custom.htm
 
sinon je te conseille plutôt de pinger l'adresse IP de ton DSLAM plutôt que www.free.fr car s'il y a un problème de serveur DNS chez free (ce qui arrive parfois), ton script ne fera que tenter de reconnecter inutilement.

Reply

Marsh Posté le 26-12-2004 à 20:33:27    

L'option -c 1 marche quand le ping est ok. Mais si il n'y a pas de connexion, ping dure longtemps.
 
je ne veux pas connaitre la valeur que renvoi le ping je m'en moque. Juste si ping ok rien, si ping marche pas alors reconnect.
 
Comment trouver l'ip du DSLAM ?

Reply

Marsh Posté le 26-12-2004 à 21:38:29    

tu vas sur francois04.free.fr, ensuite, à partir des informations de connexion de free que tu as sur adsl.free.fr/comptes tu peux trouver ton DSLAM et l'adresse ip correspondante.

Reply

Marsh Posté le 27-12-2004 à 11:23:36    

je suis en non-dégroupé..
 
par contre quand je ne suis pas chez moi, je n'ai pas de connexion, et donc mon script va essayer de connecter.. pour rien. Faudrait qu'il marche que quand je suis chez moi lol. Quelle astuce pour le coder ?
 
Je pensais à ca :
si ping ok 2 min avant, alors test de la connexion.. si ping down 2 min avant rien.


Message édité par Profil supprimé le 27-12-2004 à 11:30:47
Reply

Marsh Posté le 27-12-2004 à 11:43:09    

jeep05 a écrit :

je suis en non-dégroupé..
 
par contre quand je ne suis pas chez moi, je n'ai pas de connexion, et donc mon script va essayer de connecter.. pour rien. Faudrait qu'il marche que quand je suis chez moi lol. Quelle astuce pour le coder ?
 
Je pensais à ca :
si ping ok 2 min avant, alors test de la connexion.. si ping down 2 min avant rien.


 
même si tu n'es pas dégroupé tu peux trouver l'adresse de ton DSLAM, ici la liste des NRA/DSLAM de gironde :
 
http://francois04.free.fr/liste_dslam.php?dpt=33
 
si ton script de connexion se fait sur ta machine et que tu te déloggues quand tu n'es pas là tu peux faire un who pour voir si qq1 est connecté.

Reply

Marsh Posté le 27-12-2004 à 11:45:07    

il n'y a pas de dslam dans le 81.
 
Quand je suis pas chez moi je veux dire avec mon pc (c'est un portable) je pars avec mon pc ;)


Message édité par Profil supprimé le 27-12-2004 à 11:46:41
Reply

Marsh Posté le 27-12-2004 à 11:45:52    

jeep05 a écrit :

quand je suis pas chez moi je veux dire avec mon pc (c'est un portable) je pars avec mon pc ;)


 
lol :)
ok je comprends mieux :)
hum c'est plus compliqué là...

Reply

Marsh Posté le 27-12-2004 à 11:48:19    

est ce qu'il y a un périphérique (autre que la fb) qui est branché uniquement chez toi et que tu pourrais tester ?

Reply

Marsh Posté le 27-12-2004 à 11:48:19   

Reply

Marsh Posté le 27-12-2004 à 11:50:52    

clavier externe en usb

Reply

Marsh Posté le 15-02-2005 à 16:51:43    

Salut,
Je fais un truc similaire pour tester des tunnels IP, où il faut aussi moduler sur des délais courts (15 secondes) et où les crons sont inutiles car ne descendent pas sous la minute.
 
Voici la solution:
 
1. Rajoute "while true;do" en tête de ton script et "sleep 30;done" à la fin, si tu veux moduler sur 30 secondes
 
2. lance ton script en tâche de fond en tapant la commande:
root> nohup TonScript &
le "nohup" (no hang up) permet à ton script de tourner, même après que tu te soies déloggé. le "&" met TonScript en tâche de fond
 
3. Si tu veux que ton script tourne en permanence, mets la commande "nohup ..." dans ton /etc/rc.d/rc.local , ou dans tout autre script qui se lance au démarrage de ta machine.
 
Pour débugger, je te conseille de noter le PID de ton script pour le killer:
root> ps -ef |grep TonScript
 
pour Killer:
root> kill $(pgrep TonScript)
 
En terme de ressources, ce n'est pas gourmand du tout (c'est pas comme si tu créais un démon, qu'il faut ensuite brider :)  
Si tu veux voir:
root> top
 
Bonne chance
 
ibennani

Reply

Marsh Posté le 15-02-2005 à 19:53:10    

merci pour ton aide, mais je n'ai plus de déconnexion :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed