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

2013-02-27 Par sujet Sylvain MEDEOT

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...

Merci d'avance et bon appétit,

Sylvain



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/512dead5.1090...@yahoo.fr



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

2013-02-27 Par sujet Jean-Jacques Doti

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

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/512e0954.3010...@doti.fr



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

2013-02-27 Par sujet Sylvain L. Sauvage
Le mercredi 27 février 2013 à 14:25:40, Jean-Jacques Doti a 
écrit :
 Bonjour,

’jour,

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

  Arggh !  Faudrait choisir, grep, awk ou sed, les trois à la 
suite c’est — euh, restons poli — affreux !

  Choisis-en un !

grep :

 LANG=C /bin/df -P |  \
 grep -F /backup |\   # bonne ligne (pas besoin de \)
 grep -o '[0-9]\+%' | \   # seulement la colonne %
 grep -o '[0-9]\+'# seulement les chiffres

 (Pas ma préférée…)

awk :

  LANG=C /bin/df -P | \
 awk '/\/backup/ { sub(%, , $5); print $5 }'

  # sur les lignes contenant /backup,
  # enlève le % du 5e champ
  # imprime le 5e champ

sed :

 LANG=C /bin/df -P | \
   /bin/sed -ne '/\/backup/ {s/.*\s\([0-9]*\)%.*/\1/;p}'

 -n   = ne pas imprimer
 /\/backup/   = ne traiter que les lignes contenant /backup
 { s/…//; p } = appliquer la substitution (s) puis imprimer (p)
s/…/\1/ = récupérer seulement les chiffres entre 
  un espace (\s) et le %


  J’aurais tendance à le faire avec sed mais je me rends compte 
que awk est plus clair…

  Hmm, awk est sans doute aussi le plus robuste si [0-9]% peut 
se trouver ailleurs dans la ligne (autre montage p.ex.).

[…]
 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.

  Et aussi toujours bien placer la locale (LANG=C pour rester 
POSIX), ça évite d’avoir des résultats très bizarres, p.ex. 
quand on attend des points et qu’on a des virgules ou que l’on 
cherche 'addr' alors qu’il n’y a que 'adr'…

-- 
 Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/201302271531.31575.sylvain.l.sauv...@free.fr



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

2013-02-27 Par sujet Bruno Muller
Hello,

On peut aussi aller chercher l'info un peu plus à la source et faire le
calcul :

stat -f -c (%b-%f)*100/%b /backup | bc

Bruno
-- 
LA NATURE EST BIEN FAITE
P : À quoi ça sert, le rouge sur les ongles de pieds ?
M : À faire croire aux insectes attirés par l'odeur... que les doigts de
pieds sont vénéneux et qu'il ne faut pas les butiner.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/1361977766.11906.7.camel@bmuller-linux