Afficher juste la capacité des disques

xavyeii -  
 xavyeii -
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. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
     
    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
  2. xavyeii
     
    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. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
       
      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
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    if [ "$OCC" -gt "20" ]
    ;-))
    0
    1. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
       
      Ha oui, en plus de ne plus quitter le shell, ça envera un resultat correct :)
      0
  4. xavyeii
     
    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. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
       
      Re,

      Essayes avec
      OCC=$(df|awk '{print$4}'|sed "s/%//")
      et tu ne devrais plus avoir de soucis++
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    OCC=$(df|awk '{print$4}'|sed "s/%//")

    0
  7. xavyeii
     
    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
  8. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  9. xavyeii
     
    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
  10. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  11. xavyeii
     
    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