[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.
-
Oui dans un fichier de log il y a plusieurs heure. Les heures sont mentionnées a chaque fois que le crontab effectue la commande.
Dans le cas du log ci-dessus: sauvegarde du Thu Nov 5 15:00:01 CET 2009 -
Euh c'est juste pour une heure ou c'est pour plusieurs... car si c'est pour plusieurs il serai intéressante de rajouter les heures auquel se sont passé ces warning..
-
Voici un exemple d'un fichier log:
sauvegarde du Thu Nov 5 15:00:01 CET 2009 ACTIVITE CPU ############################# La CPU est occupé a 100 % et libre à 0% Alerte CPU !!! ############################# ACTIVITE MEMOIRE ############################# Le mémoire total est de 3092316 ko et il y a 62 % de mémoire libre et 38 % de la mémoire occupé Alerte RAM !!! ############################# 5 PROCESSUS GOURMAND ############################# %CPU COMMAND 4.1 /usr/X11R6/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7 1.7 /usr/lib/firefox-3.0.15/firefox 1.4 gedit /home/nicolas/allombert-blaise_shell2.sh 1.0 bash 0.7 /usr/bin/compiz.real --ignore-desktop-hints --replace --sm-client-id 1090fcd6eb1e69ea96125741660041447200000032900022 --loose-binding core ccp ############################# ACTIVITE DISQUE ############################# Sur le disque /dev/sda6 il y a 12G de disponible et 27% du disque d'occupé Sur le disque tmpfs il y a 1.5G de disponible et 0% du disque d'occupé Sur le disque varrun il y a 1.5G de disponible et 1% du disque d'occupé Sur le disque varlock il y a 1.5G de disponible et 0% du disque d'occupé Sur le disque udev il y a 1.5G de disponible et 1% du disque d'occupé Sur le disque tmpfs il y a 1.5G de disponible et 1% du disque d'occupé Sur le disque lrm il y a 1.5G de disponible et 1% du disque d'occupé Sur le disque /dev/sdc1 il y a 808M de disponible et 59% du disque d'occupé Alerte Disque sur /dev/sda6!!! Alerte Disque sur tmpfs!!! Alerte Disque sur varrun!!! Alerte Disque sur varlock!!! Alerte Disque sur udev!!! Alerte Disque sur tmpfs!!! Alerte Disque sur lrm!!! Alerte Disque sur /dev/sdc1!!! 5 Plus gros fichier de /dev/sda6 / 2054212 /usr 1191524 /home 1191520 /home/nicolas 1172684 /media 1172672 /media/USB 2GO 1076220 /home/nicolas/Documents 5 Plus gros fichier de tmpfs /lib/init/rw 0 /lib/init/rw/sendsigs.omit.d 0 /lib/init/rw 5 Plus gros fichier de varrun /var/run 4 /var/run/update-motd 4 /var/run/console 0 /var/run/pppconfig 0 /var/run/pm-utils/pm-powersave/storage 0 /var/run/pm-utils/pm-powersave 0 /var/run/pm-utils/locks 5 Plus gros fichier de varlock /var/lock 0 /var/lock 5 Plus gros fichier de udev /dev 264 /dev 176 /dev/.udev 172 /dev/.udev/db 88 /dev/shm 0 /dev/v4l/by-path 0 /dev/v4l/by-id 5 Plus gros fichier de tmpfs /dev/shm 88 /dev/shm 5 Plus gros fichier de lrm /lib/modules/2.6.28 5 Plus gros fichier de /dev/sdc1 /media/USB #############################
Ce fichier log est stocker dans un dossier tous les jours a 1h du matin. Exemple de nom du dossier: Sauvegarde 20091105 -
J'aimerais avoir un de tes fichier de .conf avant de répondre.
-
Pour le crontab c'est cool sa ma bien aider.
Enfaite il y a pleins de messages que j'ai pas lu c'est pour sa que je comprenais pas.
Et juste un dernier truc: tous mes information sur le système sont mis dans un fichier log qui lui (avec crontab) fais les mesure tous les heures. Tous les jours a 1h du matin ( crontab toujours !!) ce fichier log est déplacer dans un dossier qui a pour nom la date du jour. j'aimerais que l'utilisateur recherche les informations systèmes d'une heure et d'un jour qui désire. comment faire? -
Juste tu t'y es pris comment pour résoudre ton problème?
(Content de t'avoir aider, tu as vu la réponse sur les crontab? ça te suffit? )
Ps: N'oublie pas de mettre résolu! -
Un grand merci a tous le monde!!
J'annonce une grande nouvelle dans cette discution: J'AI COMPRIS et SA FONCTIONNE !!!!
Encore un grand merci!!!
Bonne journée -
ModérateurBah en soi pourquoi pas du awk (enfin si, là c'est injustifié), ça marcherait et au pire il y a plein de pages internet qui expliquent comment utiliser awk.
Le problème c'est qu'à ce stade il ne semble pas avoir compris > et >> (qui est la "bonne méthode" car elle ne requiert pas awk pour fonctionner et elle est plus performante même si ici c'est négligeable). Or > et >> sont simples à utiliser, awk n'est pas trivial à utiliser et pas justifié ici... -
Si ça, ça ne l'embrouille pas plus, je go delete linux, et moi aussi par la même occase
-
-
Contributeurdans ton fichier tu mets
MAXCPU 10
MAXMEM 1024
et dans ton script
MAXCPU=$(awk '/MAXCPU/ {print $2}' fichier.conf)
MAXMEM=$(awk '/MAXMEM/ {print $2}' fichier.conf) -
Je te l'ai fait dans ce message ==> le 5 nov 2009 à 13:28:20
-
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 -
Pour ajouter ton message d'erreur a ton fichier.conf...
Test, tu verras ;-) -
Je ne comprend pas du tout. Pourquoi utiliser des redirection?
-
ModérateurOui on a même répondu à ta question :-) Est-ce que tu as essayé ce que nous venons de t'indiquer ?
-
Ah ok c'est pas grave. Ta compris maintenant ?
-
Je mangeais, snif :'-{
-
-
A 5 secondes :p
- 1
- 2
Suivant