Afficher juste la capacité des disques

Bonjour,

J'aurais aimé connaître la commande pour n'afficher que le nom du système de fichier et le % utilisé des disques sous redhat.

En utilisant
df -k
il m'affiche toutes les informations.

Je voudrais en fait créer un script qui informe l'utilisateur lorsque la capacité du disque dépasse 20%

Voilà j'espère avoir été suffisamment clair.
Merci par avance

Xavier
Configuration: Windows XP
Firefox 3.0

10 réponses

  1. Webmaster
    Bonjour

    La commande
    df |awk '{ print $1" "$5 }'
    Te renvoit-elle ce que tu attends ?
    awk '{ print $1 " " $5 }' affiche les champs 1 et 5

    Dans tout les cas, pour ce que tu veux faire, il faudrait plutot mettre en place une politique de quotas, mais c'est une autre paire de manches.

    A plus
    0
    1. Merci pour l'info !

      T'as commande marche bien ;)

      J'aimerais faire un test pour qu'il m'affiche un message lorsque la capacité dépasse 20%
      j'ai fait ça :

      OCC=(df|awk '{print$4}'|sed "s/%//")
      if [ $OCC > "20" ]
      then
          echo -e "\n! ATTENTION ! Un de vos FILES SYSTEM depasse les 20% !"
      else
          exit
      fi


      Mais ça m'affiche "le shell a retourné 1"

      =/

      Merci..
      0
      1. Webmaster
        Mais ça m'affiche "le shell a retourné 1"

        Ben... tu as mis ça dans un script ?
        Si oui, comment executes-tu ce script, si non, c'est normal, tu demandes à ton shell de t'afficher un message si tu dépasses 20%, et de sortir sinon, comme il est obéissant, il le fait ;-)

        Dans tout les cas, si tu enlève le else, ça fonctionnera
        OCC=(df|awk '{print$4}'|sed "s/%//")
        if [ $OCC > "20" ]
        then
            echo -e "\n! ATTENTION ! Un de vos FILES SYSTEM depasse les 20% !"
        fi
        0
    2. Modérateur
      Salut,
      if [ "$OCC" -gt "20" ]
      ;-))
      0
      1. Webmaster
        Ha oui, en plus de ne plus quitter le shell, ça envera un resultat correct :)
        0
    3. Il y a un problème au niveau de :

      OCC=(df|awk '{print$4}'|sed "s/%//")


      Erreur -> " line 11: syntax error near unexpected token '|' "
      " line 11 : 'OCC=(df|awk '{print $4}'|sed "s/%//")' "


      Mais si je rajoute des parenthèses comme suit, il ne m'affiche plus d'erreur :

      OCC=(df)|(awk '{print$4}')|(sed "s/%//")


      Puis le :

      if [ "$OCC" -gt "20" ]


      ou

      if [ $OCC -gt "20" ]


      m'affiche l'erreur suivante :

      " line 61 : [: : integer expression expected "

      Mais si je le remplace par ce qui suit, il ne m'affiche plus d'erreur :

      if [ [ "$OCC" -gt "20" ]]


      Mais le problème maintenant, c'est qu'il me dit rien (donc il a quitté la boucle) alors qu'il y en a qui dépasse 20% ..

      Merci de votre aide =)
      0
      1. Webmaster
        Re,

        Essayes avec
        OCC=$(df|awk '{print$4}'|sed "s/%//")
        et tu ne devrais plus avoir de soucis++
        0
    4. Modérateur
      OCC=$(df|awk '{print$4}'|sed "s/%//")

      0
      1. En effet il ne me met plus cette erreur..

        Ca aurait été trop facile si ça aurait marché.. =/

        Si je met (avec les ""):

        if [ "$OCC" -gt "20" ]
        then
            echo -e "\n! ATTENTION ! Un de vos FILES SYSTEM depasse les 20% de stockage !"
        else
            echo -e "\nTous les FILES SYSTEM sont inferieurs a 20% !"
        fi


        Ca me renvoi :

        " line 61: [:

        18

        6

        35

        3

        9

        4

        4

        4

        4
        221329
        192780

        4

        4: integer expression expected "

        " Tous les FILES SYSTEM sont inferieur a 20% ! "


        Si je met (sans les ""):

        if [ $OCC -gt "20" ]
        then
            echo -e "\n! ATTENTION ! Un de vos FILES SYSTEM depasse les 20% de stockage !"
        else
            echo -e "\nTous les FILES SYSTEM sont inferieurs a 20% !"
        fi


        Ca me renvoi :

        " line 61: [: too many arguments"

        " Tous les FILES SYSTEM sont inferieurs a 20% ! "


        Dans tous les cas lorsque je fais un
        df
        j'obtiens :

        Sys. de fich.        1K-blocs       Occupé Disponible Capacité Monté sur
        /dev/mapper/vg_sys-lv_root
                               1015704    164724    798552  18% /
        /dev/mapper/vg_sys-lv_var
                               2031440     98716   1827868   6% /var
        /dev/mapper/vg_sys-lv_usr
                               2031440    657324   1269260  35% /usr
        /dev/mapper/vg_sys-lv_opt
                               3047184     70220   2819680   3% /opt
        /dev/mapper/vg_sys-lv_home
                                 63461      5404     54781   9% /home
        /dev/mapper/vg_sys-lv_tmp
                               2031440     69032   1857552   4% /tmp
        /dev/mapper/vg_app-lv_logs
                               1015704     34096    929180   4% /logs
        /dev/mapper/vg_app-lv_expl
                               1015704     34412    928864   4% /expl
        /dev/mapper/vg_app-lv_prod
                               4062912    140852   3712348   4% /produits
        /dev/hda1               256666     22085    221329  10% /boot
        tmpfs                   192780         0    192780   0% /dev/shm
        /dev/mapper/vg_app-lv_havane
                               1032088     34116    945544   4% /inst-havane
        /dev/mapper/vg_app-lv_havane2
                               1032088     34112    945548   4% /inst-havane2


        Et lorsque je fais un :
        df|awk '{print $4}'

        j'obtiens :

        1K-blocs
        
        18%
        
        6%
        
        35%
        
        3%
        
        9%
        
        4%
        
        4%
        
        4%
        
        4%
        221329
        192780
        
        4%
        
        4%


        Il y a un problème là non ? =/

        Merci de votre aide =)
        0
        1. Modérateur
          Peut être une autre solution à explorer...

          En partant de cette sortie de "df -h" chez moi :
          jp@MDK:~/tmpfs ssh$ df -h
          Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
          /dev/hda2             6,9G  4,5G  2,4G  66% /
          /dev/hda5             635M  602M   34M  95% /home
          /dev/hda1             9,8G  8,6G  1,3G  88% /mnt/windows
          none                  125M   24K  125M   1% /tmp
          Voilà ce que j'obtiens avec cette simple ligne de commande :
          jp@MDK:~/tmpfs ssh$ df -h | awk '/\// && $5 > 70 { print "Attention "$6" est supérieur à 70%" }'
          Attention /home est supérieur à 70%
          Attention /mnt/windows est supérieur à 70%
          jp@MDK:~/tmpfs ssh$
          A exploiter ;-))
          0
          1. Génial ! Ca marche (enfin presque xD) !

            J'ai fait comme suit :

            [toorist@ ~]# df -h|sed "s/%//"|awk '/\// && $4 > 20 {print "Attention "$5" est supérieur à 20%"}'


            Résultat :

            Attention /usr est supérieur à 20%
            Attention 10 est supérieur à 20%


            Pour RAPPEL :

            [toorist@ ~]# df -h
            Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
            /dev/mapper/vg_sys-lv_root
                                  992M  161M  780M  18% /
            /dev/mapper/vg_sys-lv_var
                                  2,0G   97M  1,8G   6% /var
            /dev/mapper/vg_sys-lv_usr
                                  2,0G  642M  1,3G  35% /usr
            /dev/mapper/vg_sys-lv_opt
                                  3,0G   69M  2,7G   3% /opt
            /dev/mapper/vg_sys-lv_home
                                   62M  5,3M   54M   9% /home
            /dev/mapper/vg_sys-lv_tmp
                                  2,0G   68M  1,8G   4% /tmp
            /dev/mapper/vg_app-lv_logs
                                  992M   34M  908M   4% /logs
            /dev/mapper/vg_app-lv_expl
                                  992M   34M  908M   4% /expl
            /dev/mapper/vg_app-lv_prod
                                  3,9G  138M  3,6G   4% /produits
            /dev/hda1             251M   22M  217M  10% /boot
            tmpfs                 189M     0  189M   0% /dev/shm
            /dev/mapper/vg_app-lv_havane
                                 1008M   34M  924M   4% /inst-havane
            /dev/mapper/vg_app-lv_havane2
                                 1008M   34M  924M   4% /inst-havane2


            Donc voilà je ne comprends pas le "10"

            Merci de votre aide !
            Je continue de voir ça demain !
            0
            1. Modérateur
              Le 10 il vient de là :
              /dev/hda1             251M   22M  217M  10% /boot
              Vu que sur cette ligne les champs ne sont pas au même endroit ;-((

              Il faudrait faire une condition "if" dans awk pour traiter les lignes différentes...

              0
              1. Oui je voyais d'où venais le "10" mais je ne comprend pas pourquoi il y a 2 lignes qui ont un décalage.. =/

                C'est embêtant pour la compréhension..

                Je vais essayer de creuser ça quand j'aurais un peu de temps.. Si quelqu'un d'entre vous a une idée sur le sujet, je suis tout ouï =)
                0