2017-02-08 1 views
-1

Je souhaite utiliser la ligne de commande pour extraire l'espace disque total d'une machine en tant que valeur unique. Sur la plupart des machines Linux, le "df --total" renvoie une telle valeur à la fin de la sortie df régulière.df --total commande pour mac?

Sur osx9, 10, 11 et 12, il semble n'y avoir aucune option comme ceci.

[u'df: illegal option -- -\n', u'usage: df [-b | -H | -h | -k | -m | -g | -P] [-ailn] [-T type] [-t] [filesystem ...]\n'] 

Même problème avec os plus linux, RedHat5, centos5, etc.

Une autre façon d'aborder ce sujet? Y at-il une autre commande pour isoler certaines valeurs? Je cherche principalement la valeur "% total utilisé".

Répondre

1

Vous devrez calculer la valeur vous-même, par ex. en utilisant awk:

df | awk ' 
    BEGIN { SIZE=0; USED=0; AVAILABLE=0 } 
    // { print } 
    $3~/[0-9]/ { SIZE += $2; USED += $3; AVAILABLE += $4 } 
    END { printf "total\t%lu\t%lu\t%lu\t%d%%\n", SIZE, USED, AVAILABLE, (USED * 100/SIZE); }' 

pour le décomposer

  • ligne 1 de awk met en place les variables au début,
  • ligne 2 imprime chaque ligne (je fais explicite),
  • ligne 3 dit que si je trouve un certain nombre dans la troisième colonne ajouter aux totaux
  • ligne 4 dit à la fin imprimer une ligne « total » (un peu semblable à la ligne de --total)