Script + variable globale

Fermé
khlif1986 Messages postés 58 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 3 mars 2009 - 6 avril 2008 à 01:07
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 6 avril 2008 à 11:03
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
6 avril 2008 à 01:52
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 vendredi 21 septembre 2007 Statut Membre Dernière intervention 3 mars 2009
6 avril 2008 à 02:01
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 vendredi 21 septembre 2007 Statut Membre Dernière intervention 3 mars 2009
6 avril 2008 à 03:02
Saviez vous comment je peux exporter à tout instant une valeur d'une boucle while infinie
0
dubcek Messages postés 18778 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 5 avril 2025 5 630
6 avril 2008 à 09:18
hello
dans un fichier : echo $nbre > /tmp/nbre
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
6 avril 2008 à 11:03
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