bash script : Connaitre l'espace disque libre

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

bash script : Connaitre l'espace disque libre

Messagepar Argenlos » 30 Déc 2004 19:45

Bonsoir,

J'ai fait un petit script pour connaitre l'espace disque de mon serveur SME et placer cette info dans une variable. Je l'ai fait avec les connaissances limités que j'ai de bash . Le voici donc:

Code: Tout sélectionner
#!/bin/bash
#espace disque actuel
declare -a tab
DISK_FREE_PHY=`df -t ext3 | grep '^/dev/' | awk '{print $4}'`
echo $DISK_FREE_PHY > $REP_LOG/temp
tab=( `cat "$REP_LOG/temp" | tr '\n' ' '`)
DISK_FREE_PHY=`expr ${tab[0]} + ${tab[1]}`
rm -f $REP_LOG/temp


Comme vous pouvez le remarquer, je suis passé par un fichier temporaire pour obtenir l'espace libre, je trouve cela un peu "moyen" car je perds un temps important à obtenir l'info (accés disque pour écrire le fichier)

Avez vous une idée pour simplifier et /ou obtenir l'info plus simplement?

Merci d'avance.

Cordialement,
Dernière édition par Argenlos le 30 Déc 2004 23:02, édité 1 fois au total.
Petit deviendra grand...
Avatar de l’utilisateur
Argenlos
Amiral
Amiral
 
Messages: 1120
Inscrit le: 31 Juil 2002 00:00
Localisation: Montagu vendée

Messagepar Franck78 » 30 Déc 2004 20:06

Continue de te pencher sur awk.

En gros tu remplaces 'awk print $4' par un truc du genre:

df -P -t ext3 -m | grep '^/dev/' |
awk ' {sum+=$4} END {printf "Espace total libre est %s Megs", sum } '


Tu peux même virer grep :
df -P -t ext3 -m | awk ' /^\/dev/{sum+=$4} END {printf "Espace total libre est %s Megs", sum } '
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar Argenlos » 30 Déc 2004 22:59

Merci Franck78, c'est sympa d'avoir répondu si rapidement, je n'en espérais pas tant.

Je vais suivre ton conseil, et regarder "awk" de plus prés,elle a l'air performante cette commande.

Cordialement,
Petit deviendra grand...
Avatar de l’utilisateur
Argenlos
Amiral
Amiral
 
Messages: 1120
Inscrit le: 31 Juil 2002 00:00
Localisation: Montagu vendée

Messagepar Jacques- » 31 Déc 2004 13:14

awk est un outil qui nécessite du temps pour le maîtriser, mais même à tatons on obtient de bons résultats.
Voici quelques liens pour la programmation en shell, qui permet elle aussi beaucoup de chose (voir tout ?) au prix d'une performance moyenne tout de même par rapport à un programme compilé ou en perl (que je ne maitrise pas) :

http://lesouriciergris.free.fr/liens_linux.html

Jacques
Avatar de l’utilisateur
Jacques-
Vice-Amiral
Vice-Amiral
 
Messages: 952
Inscrit le: 23 Jan 2003 01:00

Messagepar Argenlos » 31 Déc 2004 15:31

Merci Jacques beauçoup de liens instructifs.

Cordialement,
Petit deviendra grand...
Avatar de l’utilisateur
Argenlos
Amiral
Amiral
 
Messages: 1120
Inscrit le: 31 Juil 2002 00:00
Localisation: Montagu vendée

Messagepar neox » 05 Jan 2005 16:02

dans une variable que tu envoie par email ? ou que tus tocke pour la lire via d'autre script ?

j'ai pas de linux sous la main, mais un export VAR1=`df -h`ne marche-t-il pas ?
Avatar de l’utilisateur
neox
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 179
Inscrit le: 29 Fév 2004 01:00


Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Google [Bot] et 1 invité