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
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
}
Message d'erreur
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.
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
}
d'abord, lire le man de df pour n'en retenir les informations pertinentes; tu as déjà commencé avec -x, mais on peut aller plus loin. et, comme cela t'a été dit ailleurs, tu ne pourras plus utiliser une boucle for.
ensuite, ne traiter qu'un seule fois la commande df, et avec le shell traiter les différentes informations.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Afficher disque disponible et la mémoire
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique