Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1221 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Aide pour un script :)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide pour un script :)

n°298495
watcho
Posté le 29-07-2003 à 11:33:03  profilanswer
 

Voila, j'ai implémenté (comme vous pouvez le voir dans un autre thread) un vpn en ppp over ssh entre une conenxion ip fixe et une ip dynamqiue. Le Vpn doit donc se couper et se recréer lors de la reconnexion de l'ip dynamique. Je me disais: facile je claque mes scripts dans ip-up et ip-down et c'est fait... Seulement la connexion ppp s'effectuant sur le ssh execute aussi ces scripts donc j'ai vite 30 connexions PPP simultanément ce qui ne m'arrange pas trop.  
 
J'ai donc pensé a un 'interrupteur' qui serait à 1 lorsque la connexione est instanciée et à 0 sinon, et je testerais cet interrupteur dans mon script ip-up et ip-down. Seulement, je suis un gros nul en scripting (qui ne demande qu'a apprendre :) ) et je vous pose donc ces deux questions:
 
Est ce que cette solution d'interrupteur est optimale?  
Pouvez vous me donner une ébauche de script qui testerait ca :)  
 
Merci bcp :)

mood
Publicité
Posté le 29-07-2003 à 11:33:03  profilanswer
 

n°298989
watcho
Posté le 30-07-2003 à 09:33:36  profilanswer
 

bouhhh personne?

n°299006
CSCMEUH
Posté le 30-07-2003 à 10:26:41  profilanswer
 

watcho a écrit :

bouhhh personne?


 
Pour exectuter une action une seul fois tu deverais cree un fichier dans /var/run/ a la fin du script qui etabli la connection.
 

Code :
  1. echo "1" > /var/run/vpn


 
Et tu place cette ligne au debut du script ifup.

Code :
  1. if [ -f /var/run/vpn ]; then
  2. exit 1
  3. fi


Comme ca il ne se lance qu'une fois !
 
Voila
 

n°299159
Jak
Back to Slack !
Posté le 30-07-2003 à 15:26:52  profilanswer
 

Je rajouterais un test au début du script de connexion qui efface obligatoirement le fichier /var/run/vpn au cas où la connexion serait interrompue anormalement. En fait, il faut même toujours l'effacer, et faire les tests après, je pense.

n°299202
blame
(fir) Ô_Ô
Posté le 30-07-2003 à 17:09:14  profilanswer
 

si tu l'effaces systematiquement au debut du script il ne sert plus à rien non ?  :??:  
je vois plutot un test sur ps -eaf |grep tondemon, mais bon j'ai pas super reflechi à ca pour le moment, j'ai d'ailleurs un probleme  dans le meme genre avec proftpd ou le fichier de lock reste présent apres un crash


---------------
je garde toujours une balle pour moi ou pour mon enemi
n°299227
Jak
Back to Slack !
Posté le 30-07-2003 à 17:48:21  profilanswer
 

blame a écrit :

si tu l'effaces systematiquement au debut du script il ne sert plus à rien non ?  :??:  

Ben si. La première fois que le truc se lance, il faut bien créer un fichier correspondant au fait qu'il tourne. Mais à  un moment, tu es sûr que le processus ne tourne pas. Si le fichier existe à ce moment-là, c'est qu'il y a eu un problème. Et par exemple, dans ce fichier, tu mets le numéro de PID du processus (d'où l'intérêt de recréer à chaque fois le fichier).
Par contr, une fois le script lancé (et le script sait que le dméon est censé tourner), il faut vérifier la présence de ce fichier de lock.
 
C4est curieux, j'ai l'impression de pas être très clair.

n°299237
blame
(fir) Ô_Ô
Posté le 30-07-2003 à 18:24:48  profilanswer
 

sisi t'es tres clair [:arhendal]
 
Je dirai que tu n'es sur que le processus ne tourne plus lors du stop, donc il n'y a que la que tu puisses supprimer le fichier de bloquage.
c'est bien la le probleme, si la machine est coupée a cause de l'electricité par exemple alors le bloquage ne sera pas eliminé et ton processus ne pourra pas demarrer.
Tu voudrais supprimer le fichier de bloquage au debut mais alors rien n'empechera ton script de supprimer ce fichier, de faire un test et voyant que le fichier n'existe pas de lancer le process.
Et si tu veux supprimer ce fichier plus tard apres le test alors cela reviens a dire que le fichier n'existe pas.
 
 :??:  suis je clair a mon tour


---------------
je garde toujours une balle pour moi ou pour mon enemi
n°299308
becket
Posté le 30-07-2003 à 22:05:10  profilanswer
 

Pourquoi ne pas faire un truc simple :  
 
 
pidof PROCESSUS > /dev/null  
 if [ $? -eq 0 ]  
  then echo "deja une connection"  
  else echo " pas de processus"
  fi


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Aide pour un script :)

 

Sujets relatifs
[AIDE] script bash, CGIScript pour mon serveur web AIDE!!
Besoin d'aide pour un script shell (avec awk)besoin d'aide sur script decopupe de variable [Resolu]
Besoin d'aide pour un script: récupération de chaine de caractéresBesoin d'aide pour un petit script
Besoin d'aide pour un script[aide pour ptit script en bash!]
[Iptables] Aide sur un scriptbesoin d aide , script de conection windows
Plus de sujets relatifs à : Aide pour un script :)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR