PB création et utilisation VAR environement.

PB création et utilisation VAR environement. - Shell/Batch - Programmation

Marsh Posté le 06-07-2010 à 11:20:59    

Bonjour,
 
Sur un système Unix je n'arrive pas a stocké une valeur dans une VAR environnement a partir d'un script.
 
Bon pour être claire je test sur un Linux un script de redondance de ligne a intégrer sur un Netasq.
 
J'ai une variable L1UP que je souhaiterai utiliser dans ce mm script 10 secondes après son exécution...
Le cron du Netasq me permet de faire l'exécution du script toute les 10 secondes.
 
je créer ma variable avant:
 
export L1UP=0
 

Code :
  1. #!/bin/sh
  2. #script slot VPN: N le numero du slot IP1 ligne principale IP2 redondance.
  3. set
  4. IP1=192.101.101.33
  5. IP2=192.101.101.70
  6. N1=08
  7. N2=10
  8. ping -c 1 $IP1 >/dev/null 2>&1
  9. R1=$?
  10. ping -c 1 $IP2 >/dev/null 2>&1
  11. R2=$?
  12. if [ "$R1" = "1" ]; then
  13. if [ "$R2" = "0" ]; then
  14. if [ "$L1UP" != "1" ]; then
  15. echo "envpn $N2";
  16. L1UP=1
  17. export L1UP
  18. fi
  19. fi
  20. fi
  21. if [ "$R1" = "0" ]; then
  22. if [ "$L1UP" = "1" ]; then
  23. echo "envpn $N1";
  24. L1UP=0
  25. export L1UP
  26. fi
  27. fi
  28. echo "$L1UP"
  29. exit


 
C'est la première fois que je test comme ca et ca ne marche pas... Dommage ca m'évite de stocker dans un fichier text.
Un grand merci car tout ce que je lit C qu'il fraudais mettre la variable dans le fichier text des Var env.
Je pense qu'il faut trouver un moyen d'exécuter le script dans le shell de la machine?
D'avance un grand merci a celui qui peut m'éclairer.

Reply

Marsh Posté le 06-07-2010 à 11:20:59   

Reply

Marsh Posté le 06-07-2010 à 15:40:56    

ça ne peut pas fonctionner car la variable est crée dans l'environnement d'exécution du script qui est détruit en sortie. L'exécution suivante du script se fera dans un nouvel environnement.
 
Je ne vois pas d'autre solution que de passer par un fichier intermédiaire.  

Code :
  1. #!/bin/sh
  2. #script slot VPN: N le numero du slot IP1 ligne principale IP2 redondance.
  3. # Recup valeur L1UP
  4. envFile=/path/l1up.env
  5. [ -f $envFile] &&  . $envFile
  6. L1UP=${L1UP:-0}
  7.  
  8. set
  9. IP1=192.101.101.33
  10. IP2=192.101.101.70
  11. N1=08
  12. N2=10
  13. ping -c 1 $IP1 >/dev/null 2>&1
  14. R1=$?
  15. ping -c 1 $IP2 >/dev/null 2>&1
  16. R2=$?
  17. if [ "$R1" = "1" -a "$R2" = "0" -a "$L1UP" != "1" ]; then
  18.    echo "envpn $N2";
  19.    L1UP=1
  20. fi
  21. if [ "$R1" = "0" -a "$L1UP" = "1" ]; then
  22.    echo "envpn $N1";
  23.    L1UP=0
  24. fi
  25. echo "$L1UP"
  26. # Mémorise variable L1UP
  27. echo "export L1UP=$L1UP" > $envFile
  28. exit


 
Jean-Pierre.

Reply

Sujets relatifs:

Leave a Replay

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