Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher disque disponible et la mémoire

    19 juillet 2022 à 0:04:55

    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
    }



    -
    Edité par Le Kara 19 juillet 2022 à 0:13:56

    • Partager sur Facebook
    • Partager sur Twitter
      19 juillet 2022 à 16:49:49

      pfiou ! il y a tellement de maladresses...

      pour la première fonction :

      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.

      • Partager sur Facebook
      • Partager sur Twitter

      "Un problème clairement exposé est à moitié résolu." ·· Pas de questions techniques en MP.

      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é.
      • Editeur
      • Markdown