[script shell] fichier configuration
Bonjour,
J'ai fais un petit script qui donne l'activité cpu. J'ai aussi fais une alerte mais je voudrais mettre la valeur de l'alerte dans un fichier de configuration et non dans le scripte directement comme ci dessous:
cpulib=$(vmstat | grep -v procs|grep -v r| tr -s ' '|cut -d " " -f 16) ; cpuocup=$(( 100 - $cpulib )) ;echo "La CPU est occupé a $cpuocup % et libre à $cpulib%" ; if [ $cpuocup -ge 10 ]; then echo "Alerte CPU !!!" ;fi
Merci de votre aide.
J'ai fais un petit script qui donne l'activité cpu. J'ai aussi fais une alerte mais je voudrais mettre la valeur de l'alerte dans un fichier de configuration et non dans le scripte directement comme ci dessous:
cpulib=$(vmstat | grep -v procs|grep -v r| tr -s ' '|cut -d " " -f 16) ; cpuocup=$(( 100 - $cpulib )) ;echo "La CPU est occupé a $cpuocup % et libre à $cpulib%" ; if [ $cpuocup -ge 10 ]; then echo "Alerte CPU !!!" ;fi
Merci de votre aide.
Configuration: Linux Firefox 3.0.15
31 réponses
Résumé de la discussion
Plusieurs réponses discutent de déplacer le seuil d’alerte CPU et les valeurs de configuration hors du script vers un fichier de configuration, afin que l’alerte soit modulable sans toucher au code ou sans modifier le fonctionnement global. Des approches utilisent MAXCPU et MAXMEM dans un fichier, puis lisent ces valeurs via awk ou cat dans le script, par exemple MAXCPU=$(awk '/MAXCPU/ {print $2}' fichier.conf) ou MAXCPU=$(cat fichier.conf). D'autres proposent d'écrire les valeurs dans un seul fichier source avec une redirection '>' puis '>>' pour réunir les résultats, ou d'utiliser cat pour fusionner plusieurs fichiers, sans conclure sur l'état du fil.
-
ModérateurBen il suffit de rediriger le flux écrit vers la sortie standard vers un fichier avec l'opérateur > ou >>. L'opérateur > réécrit le fichier avec le résultat de la commande dans le fichier cible, tandis que >> écrit à la suite. Exemple :
ls > pouet.txt cat pouet.txt ls >> pouet.txt cat pouet.txt ls > pouet.txt cat pouet.txt
Bonne chance -
Hello,
Si j'ai bien compris, ta valeur de l'alerte est le '10'.
Donc tu peux mettre '10' dans le fichier alerte.conf ;
Et remplacer : if [ $cpuocup -ge 10 ]; then echo "Alerte CPU !!!" ;fi
Par : if [ $cpuocup -ge `cat alerte.conf` ]; then echo "Alerte CPU !!!" ;fi
Cordialement,
Marc. -
Contributeurhello
echo 10 > fichier.conf
et dans le script
MAXCPU=$(cat fichier.conf)
...
if [ $cpuocup -ge $MAXCPU ]; then echo "Alerte CPU !!!" ;fi -
Merci a tout le monde pour votre aide!!!!!
++ -
Juste une question: si je veux mettre plusieurs valeurs pour plusieurs paramètres par exemple un pour la CPU et un pour la mémoire je fais comment?
-
ModérateurIl faut que tu lises un tutoriel en bash :-)
http://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Systeme/TDTP2003/tp03.html
Section "Arguments de la ligne de commande"
Bonne chance -
J'ai bien lu ce paragraphe mais je ne vois toujours pas comment résoudre mon problème...
Merci quand même. -
ModérateurTu cherches bien à récupérer les arguments passés à ton programme shell ? Si oui, ceux si sont stockés dans $1, $2 etc...
-
Non pas du tout. Je t'explique:
J'ai un script ou j'ai mis 2 alertes, une pour la CPU et une pour la mémoire. Pour le moment j'ai mis les 2 valeurs de ses alertes dans 2 fichier .conf . Et je voudrais avoir comment mettre ses 2 valeurs dans un seul fichier .conf .
voici script.sh:
if [ $pourcenmemocup -ge `cat alerteMEM.conf` ]; then echo "Alerte RAM !!!" ;fi
if [ $cpuocup -ge `cat alerteCPU.conf` ]; then echo "Alerte CPU !!!" ;fi
et mes 2 fichier de configurations:
configCPU.conf:
5
configMEM.conf:
50 -
if [ $pourcenmemocup -ge `cat alerteMEM.conf` ]; then echo "Alerte RAM !!!" >> ./fichier.conf ;fi
if [ $cpuocup -ge `cat alerteCPU.conf` ]; then echo "Alerte CPU !!!">> ./fichier.conf ;fi
pour vérifier...
cat ./fichier.conf -
ModérateurAh ok, j'ai mal compris ce que tu voulais dire, le mot argument était ambigu.
Ben à ce moment là j'ai répondu à ta question dans le message <1>. Tu écris la première valeur avec > dans ton fichier de sortie, puis tu écris la seconde à la suite dans ce même fichier avec >>.
ma_premiere_commande > fichier.txt ma_seconde_commande >> fichier.txt
Ou on peut aussi imaginer que tu fasses un cat de tes deux fichiers vers le fichier unifié, mais c'est un peu dommage de passer par des fichiers intermédiaires :
cat fichier1.txt fichier2.txt > fichier.txt
Bonne chance -
A 5 secondes :p
-
-
Je mangeais, snif :'-{
-
Ah ok c'est pas grave. Ta compris maintenant ?
-
ModérateurOui on a même répondu à ta question :-) Est-ce que tu as essayé ce que nous venons de t'indiquer ?
-
Je ne comprend pas du tout. Pourquoi utiliser des redirection?
-
Pour ajouter ton message d'erreur a ton fichier.conf...
Test, tu verras ;-) -
Moi je veux juste mettre 2 valeurs dans mon fichier conf.
Je peux même pas test je comprend pas ce que vous me dites.
Si sa ne te dérange pas réécrit mon script mais avec tes modifs sa m'aidera peut être a comprendre -
Je te l'ai fait dans ce message ==> le 5 nov 2009 à 13:28:20
- 1
- 2
Suivant