Reboot automatique si la connection est out

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 OXO90 » 14 Août 2003 18:09

Salut, <BR>Pour régler certains problème de connection (ligne montée mais pas de Web, modem qui ne se reconnecte pas etc...) je me suis inspiré d'un HowTo Ipcop pour faire un check d'adresses Web (google & yahoo) et si cela ne répond pas rebooter automatiquement le firewall. <BR> <BR>Voici le script: <BR> <BR>#!/bin/sh <BR># Script to check internet connectivity <BR>echo "Testing Line status " & date; <BR> <BR>if <BR>(/bin/ping -c 1 216.239.51.100); <BR>then echo " Line is UP"; <BR> <BR>elif <BR>(/bin/ping -c 1 66.218.71.113); <BR>then echo " Line is Up (2nd host)"; <BR> <BR>else <BR>echo "Line is Down will reboot the system"; <BR>/sbin/shutdown -r now >& /var/log/reboot.log <BR> <BR>fi <BR> <BR>J'ai placé ce script dans /usr/sbin, j'ai changé les droits par un chmod +675 sur ce fichier. <BR> <BR>Puis j'ai fait un crontab -e en ajoutant la ligne suivante <BR> <BR>0,15,30,45 * * * * /usr/sbin/checkline >& /var/log/linestat.log <BR> <BR>pourchecker toutes les 15 Minutes. <BR> <BR>Le problème est le suivant, quand je lance le script j'ai l'erreur suivante: <BR> <BR>./checkline: bad interpreter: No such file or directory <BR> <BR>Et je ne comprends pas pourquoi ... <BR> <BR>L'article dont je me suis inspiré est <BR> <!-- BBCode u2 Start --><A HREF="http://www.ipcop.org/cgi-bin/twiki/view/IPCop/IPCopAddons#How_can_I_get_IPCop_to_reboot_if" TARGET="_blank">ICI</A><!-- BBCode u2 End --> <BR> <BR>Si quelqu'un aurait une idée cela pourrait dépanner pas mal de monde surtout si on a pas accès à la machine rapidement et que certains services tournent. <BR> <BR>Dans mon cas, vacances et serveur mail qui tourne... J'ai pas envie de devoir la rebooter préventivement à toutes heures non plus. <IMG SRC="images/smiles/icon_frown.gif"> <BR> <BR>Par avance merci <IMG SRC="images/smiles/icon_up.gif">
"Passe Le Fun Autour De Toi ..."
Avatar de l’utilisateur
OXO90
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 305
Inscrit le: 29 Déc 2001 01:00
Localisation: Strasbourg

Messagepar Gesp » 14 Août 2003 19:29

Retire les CR/LF avec sed si tu as édité depuis windows <BR> <BR>fait une copie <BR>cp checkline checkline.bak <BR> <BR>puis tapes <BR>sed 's/^M$//' checkline.bak > checkline <BR> <BR>sed est criptyque mais puissant
Avatar de l’utilisateur
Gesp
Amiral
Amiral
 
Messages: 4481
Inscrit le: 29 Déc 2002 01:00

Messagepar OXO90 » 14 Août 2003 19:31

Pareil je viens de le faire et ça donne la même chose...
"Passe Le Fun Autour De Toi ..."
Avatar de l’utilisateur
OXO90
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 305
Inscrit le: 29 Déc 2001 01:00
Localisation: Strasbourg

Messagepar Gesp » 14 Août 2003 19:32

et puis certainement pas besoin de rebooter, un reset de l'USB suffirait largement <BR> <BR>Pour savoir comment faire, voir dans rc.alcatelusb et retirer aussi le module adiusbadsl
Avatar de l’utilisateur
Gesp
Amiral
Amiral
 
Messages: 4481
Inscrit le: 29 Déc 2002 01:00

Messagepar OXO90 » 14 Août 2003 19:33

Je veux pouvoir le faire quelque soit le modem usb ou ethernet d'où ce script. <BR> <BR>Qui a l'air simple et radicale mais qui me garantit un bon résultat dans les moments critiques.
"Passe Le Fun Autour De Toi ..."
Avatar de l’utilisateur
OXO90
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 305
Inscrit le: 29 Déc 2001 01:00
Localisation: Strasbourg

Messagepar Gesp » 14 Août 2003 22:06

Tu es root quand tu lances ton script?
Avatar de l’utilisateur
Gesp
Amiral
Amiral
 
Messages: 4481
Inscrit le: 29 Déc 2002 01:00

Messagepar OXO90 » 14 Août 2003 23:33

Oui je suis root. <BR> <BR>Je ne vois vraiment pas d'où peut venir cette erreur, c'est quand même simple comme script, il y a rien de compliqué là-dedans <BR> <IMG SRC="images/smiles/icon_confused.gif">
"Passe Le Fun Autour De Toi ..."
Avatar de l’utilisateur
OXO90
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 305
Inscrit le: 29 Déc 2001 01:00
Localisation: Strasbourg

Messagepar micj » 14 Août 2003 23:41

Si tu le lances à la main cela donne le même résultat... <BR> <BR>Sinon n'oublie pas pour Cron de rajouter l'utilisateur qui lance le script en question
Avatar de l’utilisateur
micj
Amiral
Amiral
 
Messages: 1142
Inscrit le: 20 Fév 2002 01:00
Localisation: Braine-L'Alleud/Belgique

Messagepar OXO90 » 14 Août 2003 23:45

Si je fais un ./checkline même ré&sultat j'ai rajouté aussi root dans le crontab. <BR> <BR>Mais si cela ne fontionne pas à la main alors même si mon crontab est bon cela ne changera pas le problème... <BR> <BR>
"Passe Le Fun Autour De Toi ..."
Avatar de l’utilisateur
OXO90
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 305
Inscrit le: 29 Déc 2001 01:00
Localisation: Strasbourg

Messagepar micj » 14 Août 2003 23:58

rajoute dans ton script une ligne vide en début de script ... et comme par miracle cela va fonctionner (en tout cas chez moi c'est le cas) ... <BR>
Avatar de l’utilisateur
micj
Amiral
Amiral
 
Messages: 1142
Inscrit le: 20 Fév 2002 01:00
Localisation: Braine-L'Alleud/Belgique

Messagepar OXO90 » 15 Août 2003 00:32

Il se lance effectivement comme par enchantement, mais et oui il y a un mais <BR> <BR>: command not found: <BR>Testing Line status <BR>Fri Aug 15 00:30:20 CEST 2003 <BR>: command not found: <BR>: command not found: <BR>: command not found: if <BR>PING 216.239.51.100 (216.239.51.100) from 81.56.242.146 : 56(84) bytes of data. <BR>64 bytes from 216.239.51.100: icmp_seq=0 ttl=50 time=161.483 msec <BR> <BR>--- 216.239.51.100 ping statistics --- <BR>1 packets transmitted, 1 packets received, 0% packet loss <BR>round-trip min/avg/max/mdev = 161.483/161.483/161.483/0.000 ms <BR>: command not found: <BR>/usr/sbin/checkline: line 8: syntax error near unexpected token `then' <BR>'usr/sbin/checkline: line 8: `then echo " Line is UP"; <BR> <BR>Il y a un bug <IMG SRC="images/smiles/icon_frown.gif">
"Passe Le Fun Autour De Toi ..."
Avatar de l’utilisateur
OXO90
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 305
Inscrit le: 29 Déc 2001 01:00
Localisation: Strasbourg

Messagepar tomtom » 15 Août 2003 07:28

Tu l'as ecrit avec quoi ton script ? <BR>Je te conseille de le faire (si ce n'est pas le cas) directement dans la console ipcop avec l'editeur vi. <BR>Si tu n'es pas à l'aise avec vi, tu peux ouvrir simplement le fichier : <BR> <BR>vi monscript <BR>ensuite tu tapes i pour passer en mode insertion <BR>Là eventuellement tu peux simplement utiliser le boutton droit de ta souris sous putty pour coller du texte que tu as copié depuis ton editeur prefere sous windows. <BR> <BR>ensuite wq pour sauvegarder quitter. <BR> <BR>Attention, cette methode n'est pas la meilleure car cela risque de perdre des informations de retour à la ligne, l'ideal est encore de taper directement le script sous vi. <BR> <BR>Je pense qu'il doit y avoir des caractères tordus dus aux editions sous notepad et/ou wordpad <BR> <BR>Pour vos editions sous windows, il existe des outils specialisés. <BR> <BR> <BR>T.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Messagepar OXO90 » 15 Août 2003 09:06

C'est bon j'ai refait pas à pas le script je l'ai testé pas à pas et il refonctionne correctement. <BR> <BR>Je vais encore voir pour améliorer la gestion des logs. <BR>Ce qui est bizarre c'est ue je l'ai retapé avec VI déjà une fois et que cela ne m'avait pas réglé le problème. <BR> <BR>On verra sur la durée, mais la solution est pas mal même si radical sur le principe. <BR> <BR>La seule faille c'est en cas de problème sur les sîtes DOS par exemple sur lequel je me réfère pour checker la ligne. <BR> <BR>Mais le risque peut en valoir le coup et au pire un reboot ne mettra pas en danger l'état du système. <BR> <BR>Merci encore de votre aide à moi de travailler maintenant.
"Passe Le Fun Autour De Toi ..."
Avatar de l’utilisateur
OXO90
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 305
Inscrit le: 29 Déc 2001 01:00
Localisation: Strasbourg

Messagepar bisol » 15 Août 2003 09:18

Le script commence-t-il par 1 : <BR>#/bin/sh <BR>contenuduscript... <BR> <BR>Car ceci aide souvent.. au niveau des alias.. Et cron $%#&! parfois avec les fichier chmoder en executablre il te retourne qu'il veut pas car executable sauf erreur
Avatar de l’utilisateur
bisol
Contre-Amiral
Contre-Amiral
 
Messages: 437
Inscrit le: 05 Juin 2002 00:00
Localisation: Suisse

Messagepar OXO90 » 15 Août 2003 09:28

Oui le script final est celui-ci: <BR> <BR>"#!/bin/sh <BR>#Script To Check Internet Connectivity <BR>echo "Testing Line Status" & date; <BR> <BR>if <BR>(/bin/ping -c 1 216.239.51.100); <BR>then echo "Line Is Up"; <BR> <BR>elif <BR>(/bin/ping -c 1 66.218.71.113); <BR>then echo "Line Is Up - 2e Host"; <BR> <BR>else <BR>echo "Line Is Down Will Reboot System"; <BR>/sbin/shutdown -r now >& /var/log/linestatus.log <BR> <BR>fi" <BR> <BR>C'est la base, il s'appuie sur Google & Yahoo, pour l'état de la ligne. <BR> <BR> <IMG SRC="images/smiles/icon_up.gif">
"Passe Le Fun Autour De Toi ..."
Avatar de l’utilisateur
OXO90
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 305
Inscrit le: 29 Déc 2001 01:00
Localisation: Strasbourg

Suivant

Retour vers IPCop

Qui est en ligne ?

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

cron