Script + variable globale

khlif1986 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
Voici le script suivant essai.sh
#!/bin/bash
while true; do
total=`echo $(grep MemTotal: /proc/meminfo) | cut -d' ' -f2`
libre=`echo $(grep MemFree: /proc/meminfo) | cut -d' ' -f2`
conn=`echo "$total/16384" | bc | cut -d "." -f2`
nbre=`echo "$libre/$conn" | bc | cut -d "." -f2`
echo "Memoire totale : $total Ko"
echo "Memoire libre : $libre Ko"
echo "nombre connection possible est : $nbre"
sleep 5
export nbre
bash
done;

Mon objectif est de laisser ce script s'executer dès le démarrage de linux et de pouvoir accéder à la variable nbre depuis la console pour l'utiliser afin de définir une règle iptables mais le problème c'est que la boucle s'effectue une seule fois et l'exécution du script s'arrete. Est ce qu'ilya une solution ?
A voir également:

2 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

en fait la boucle ne s'arrête pas
mais comme tu lances un shell depuis ton script, dans le fils tu ne vois pas boucle
si tu fais un exit tu verras qu'elle tourne
lami20j@debian:~$ sh meminfo.sh
Memoire totale : 516664 Ko
Memoire libre : 18144 Ko
nombre connection possible est : 585
lami20j@debian:~$ exit
exit
Memoire totale : 516664 Ko
Memoire libre : 17804 Ko
nombre connection possible est : 574
lami20j@debian:~$ exit
exit
Memoire totale : 516664 Ko
Memoire libre : 17780 Ko
nombre connection possible est : 573
lami20j@debian:~$ exit
exit
Memoire totale : 516664 Ko
Memoire libre : 15872 Ko
nombre connection possible est : 512
lami20j@debian:~$
donc tu vois bien qu'après un exit, je retourne dans le shell père et la boucle continue


et voici le résultat en enlévant la commande bash

lami20j@debian:~$ sh meminfo.sh
Memoire totale : 516664 Ko
Memoire libre : 18788 Ko
nombre connection possible est : 606
Memoire totale : 516664 Ko
Memoire libre : 18656 Ko
nombre connection possible est : 601
Memoire totale : 516664 Ko
Memoire libre : 18680 Ko
nombre connection possible est : 602
Memoire totale : 516664 Ko
Memoire libre : 17988 Ko
nombre connection possible est : 580
Memoire totale : 516664 Ko
Memoire libre : 18400 Ko
nombre connection possible est : 593
Memoire totale : 516664 Ko
Memoire libre : 18416 Ko
nombre connection possible est : 594
Memoire totale : 516664 Ko
Memoire libre : 18432 Ko
nombre connection possible est : 594
Memoire totale : 516664 Ko
Memoire libre : 18432 Ko
nombre connection possible est : 594
Memoire totale : 516664 Ko
Memoire libre : 18136 Ko
nombre connection possible est : 585
Memoire totale : 516664 Ko
Memoire libre : 18144 Ko
nombre connection possible est : 585
0
khlif1986 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention  
 
Bon j'ai suivi le meme résonnément que vous avant mais le problème c'est que je ne peux pas récupérer la valeur de nbre en tapant $nbre sur la console.
Le but du script est d'utiliser $nbre qui varie au cours du temps pour définir une rèdle de limitation de l'attaque synflood
0
khlif1986 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention  
 
Saviez vous comment je peux exporter à tout instant une valeur d'une boucle while infinie
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
dans un fichier : echo $nbre > /tmp/nbre
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

en fait il a besoin de $nbre pour l'utiliser dans une règle iptables
je l'ai conseillé de mettre la règle iptables directement dans le script, donc pas besoin d'une exportation

http://www.commentcamarche.net/forum/affich 5794050 compilation un fichier c#24

bonne journée ;-)
0