Bonsoir, je suis débutant en programmation shell. J'ai deux fonctions. L'un affiche un message quand le disque est plein et l'autre affiche l'espace occupé par les processus en mémoire en Mo.
1ère fonction
Message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 function checkSpaceDisk() { #Extraction du nom des disques installés for DISK in $(df -x tmpfs -x devtmpfs |grep dev |awk -F { print $1} |cut -d/ -f 3) Do #Espace disque utilisé espaceUtilise=$(df |grep grep -w « $DISM » |awk -F '' '' { print $5}) #Espace disque total. Valeur retournée à la caractère G à la fin donc j'extrais les chiffres espaceTotal=$(df -x tmpfs -x devtmpfs |grep dev |awk -F '' '' { print $2}) |grep '-o [[:digit:]])') if [[ '' $espaceUtilise '' -eq '' espaceTotal '' ]]; then Echo « Le disque $DISK est plein » Fi done }
512 : nombre entier attendu comme expression
La fonction 2
A pour objectif d'extraire la quantité de mémoire occupée et à l'affiché en méga octet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function checkSpaceDisk() { #Récupération de la mémoire totale totalMemoire=sudo cat /proc/meminfo |grep MemTotal #Liste de tous les processus avec tri listeProcessus=ps -eo pid, %mem --sort=-%mem #à partir de là, je n'avance plus. L'objectif c'est de parcourir la liste des processus et la quantité #extrait ces deux colonnes, convertir la quantité % en méga Octet avec l'opération #taille="$processusEnCours" * "$totalMemoire }
Partager