[aide pour ptit script en bash!]

[aide pour ptit script en bash!] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 09-01-2003 à 14:33:07    

hello
j'aimerais mettre en place un ptit script pour relancer ma connexion internet quand ça marche plus :)
 
 
en fait l'algorithme seraitun truc de ce style:
 


 
variable X
 
test ethX si ping vers 192.168.0.1
 
  si ça pingue fais rien
 
  sinon
     RESULTAT =
        ifconfig ethX down
        ET rmmod usbvnet
        ET modprobe usbvnet
        ET iwconfig ethX essid pouet
        ET dhcpcd ethX
 
 
   si RESULTAT dis OK
 


 
voilà, je sais pas comment faire, je crois pas que ce soit très difficile à faire, le seul truc en fait que j'aimerais savoir c comment tester si ça pingue mon routeur .... voilà merci bcp si vous prenez le temps de m'aider :)


Message édité par k666 le 09-01-2003 à 14:33:33
Reply

Marsh Posté le 09-01-2003 à 14:33:07   

Reply

Marsh Posté le 09-01-2003 à 14:35:10    

l'idée étant, à terme, de le mettre dans une crontab, car de temps en temps je suis déconnecté mystérieusement de mon réseau wireless ... j'aimerais tester voir si ça suffira de mettre ce ptit script :)
merci bcp encore

Reply

Marsh Posté le 09-01-2003 à 14:52:40    

aller, je suis gentil aujourd'hui :

Code :
  1. ping 192.168.0.1
  2. if [ $? -gt 0 ]; then
  3.     ifconfig ethX down
  4.     modprobe -r usbvnet
  5.     modprobe usbvnet
  6.     iwconfig ethX essid pouet
  7.     dhcpd ethX
  8.     echo "c'est bon, ça s'est relancé" > /ton_fichier_log
  9. else
  10.     exit 0
  11. fi


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 09-01-2003 à 15:10:45    

hum en fait c un tout chtit chouilli plus complexe :
 
je veux, en fonction de ske ping me dit faire une ou l'autre des actions, ... il faudrait donc que je pipe le ping vers un grep mais en meme temps que je puisse m'en sortir ... car ping va pinguer continuellement :/
 
des fois j'ai ce type d'output:


PING 192.168.0.1 (192.168.0.1): 56 octets data
sendto: Network is unreachable
ping: sent 64 octets to 192.168.0.1, ret=-1
sendto: Network is unreachable
ping: sent 64 octets to 192.168.0.1, ret=-1
sendto: Network is unreachable
ping: sent 64 octets to 192.168.0.1, ret=-1
 


 
 
et des fois (i.e. quand ça marhce) jai ça:
 


 
[root@kpoman:~]$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 octets data
64 octets from 192.168.0.1: icmp_seq=0 ttl=254 time=3.8 ms
64 octets from 192.168.0.1: icmp_seq=1 ttl=254 time=4.1 ms
64 octets from 192.168.0.1: icmp_seq=2 ttl=254 time=3.9 ms
 


 
 
donc il me faudrait tester si j'ai du network is unreachable au moins 3 fois ... et dans ce cas fermer la commande ping et exécuter les bonnnes actions ... c toute cette partie que je sais pas du tout faire :)

Reply

Marsh Posté le 09-01-2003 à 15:15:06    

k666 a écrit :

donc il me faudrait tester si j'ai du network is unreachable au moins 3 fois ... et dans ce cas fermer la commande ping et exécuter les bonnnes actions ... c toute cette partie que je sais pas du tout faire :)

Pour que le ping s'arrête:

Code :
  1. ping -c<nbre d'essais>


voir man ping

Reply

Marsh Posté le 09-01-2003 à 15:16:37    

mais ça marche pas quand le network is unreachable :/

Reply

Marsh Posté le 09-01-2003 à 15:17:56    

jveux dire: ça reste en attente du retour du ping:
 
[root@kpoman:~]$ ping -c 3 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 octets data
sendto: Network is unreachable
ping: sent 64 octets to 192.168.0.1, ret=-1
sendto: Network is unreachable
ping: sent 64 octets to 192.168.0.1, ret=-1
sendto: Network is unreachable
ping: sent 64 octets to 192.168.0.1, ret=-1
 
 
....
 
et là on n'a qu'à attendre que ça remarche un jour :/

Reply

Marsh Posté le 09-01-2003 à 15:18:25    

k666 a écrit :

mais ça marche pas quand le network is unreachable :/

Il s'arrête pas quand le network est unreachable???! :heink:

Reply

Marsh Posté le 09-01-2003 à 15:18:52    

ping -w X quitte au bout de X secondes ...

Reply

Marsh Posté le 09-01-2003 à 15:23:50    

si, désolé il s'arrête bel et bien :) mais bon au bout de quinze secondes ou par là ...
 
pour l'instant le code qu ej'ai c ça:
 
 


#!/bin/sh
 
ping -c 3 192.168.0.1 | grep unreachable
if [ $? -gt 0 ]; then
        #ifconfig ethX down
        #modprobe -r usbvnet
        #modprobe usbvnet
        #iwconfig ethX essid pouet
        #dhcpd ethX
        echo "c'est bon, c,a s'est relance'"
else
        echo "la connexion marche toujours ..."
        #exit 0
fi
 
 


 
mais à chaque fois, meme si up ou down, il me balance c'est bon ce s'est relance... ?

Reply

Marsh Posté le 09-01-2003 à 15:23:50   

Reply

Marsh Posté le 09-01-2003 à 15:25:32    

pourquoi t'as mis un grep ?
 
si il ne trouve pas le réseau ou qu'un paquet ne revient pas, il envoie 1 sinon, il envoie 0 (extrait du man) :
     
If  ping does not receive any reply packets at all it will
       exit with code 1. If a packet count and deadline are  both
       specified,  and  fewer  than count packets are received by
       the time the deadline has arrived, it will also exit  with
       code 1.  On other error it exits with code 2. Otherwise it
       exits with code 0. This makes it possible to use the  exit
       code to see if a host is alive or not.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 09-01-2003 à 15:36:06    

en effet tu as raison :) ça marche!
 
en fait jvoulais faire ptêtre d'une autre façon histoire d'avoir ptêtre un peu plus la main sur les résultats du ping ?:
 
j'ai essayé ça:
 


if [ ping -c 3 192.168.0.1 | grep unreachable | wc -l -eq 0 ]; then


 
mais jvois pas pour quoi ça fonctionne pas ... ?

Reply

Marsh Posté le 09-01-2003 à 16:51:06    

Peut-être plutôt ça:


if [ `ping -c 3 192.168.0.1 | grep unreachable | wc -l` -eq 0 ]; then

:pt1cable:


Message édité par teagle le 09-01-2003 à 17:38:30
Reply

Sujets relatifs:

Leave a Replay

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