Afficher juste la capacité des disques
xavyeii
-
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
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
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 -kil 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
-
Bonjour
La commandedf |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 -
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..-
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 fonctionneraOCC=(df|awk '{print$4}'|sed "s/%//") if [ $OCC > "20" ] then echo -e "\n! ATTENTION ! Un de vos FILES SYSTEM depasse les 20% !" fi
-
-
Salut,
if [ "$OCC" -gt "20" ]
;-))
-
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 =) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
OCC=$(df|awk '{print$4}'|sed "s/%//")
-
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 undf
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 =) -
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 ;-))
-
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 ! -
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...
-
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ï =)