[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Différence entre Squeeze et Wheezy dans l'exécution d'une commande



Bonjour,

Le 27/02/2013 12:15, Sylvain MEDEOT a écrit :
Bonjour la liste,

Sur un de mes serveurs, je souhaite récupérer l'occupation disque sur un volume monté dans backup.

J'exécute donc la commande :

Sous Squeeze
TAILLE=`/bin/df | /bin/grep \/backup | /usr/bin/awk '{printf ("%s",$4)}' | /bin/sed 's/%//g'`

Sous Wheezy je dois changer le numéro de colonne pour awk de 4 en 5...
TAILLE=`/bin/df | /bin/grep \/backup | /usr/bin/awk '{printf ("%s",$5)}' | /bin/sed 's/%//g'`

Donc ma question est la suivante... Pourquoi ?

Auriez vous une autre solution pour récupérer cette valeur ? Je suis sur que oui...
En fait, le bon comportement est celui que tu as sous Wheezy : le pourcentage d'occupation du FS est bien le 5ème champ. Ce qu'il se passe, c'est que sous squeeze, df affiche les informations d'un FS sous deux lignes lorsque le chemin du device (premier champ) est trop long afin de garder visuellement alignées les différentes colonnes. Cela rend difficile l'analyse de la sortie du df par des programmes. Afin d'éviter ces inconvénients, il faut utiliser l'option -P (--portability : format POSIX) : les informations d'un FS sont alors toutes sur la même ligne, séparées par des tabulations et le pourcentage d'occupation est toujours le 5ème champ. Avec la version de df (paquet coreutils) sous wheezy, l'affichage POSIX se fait par défaut, ce qui explique le changement de comportement.

Moralité : il faut *toujours* utiliser l'option -P de df lorsqu'on l'utilise dans des scripts.

A+
Jean-Jacques


Reply to: