Pour df
calculer les totaux, utilisez l' --totals
option. Si vous ne souhaitez que les totaux sur certains lecteurs sélectionnés, spécifiez-les comme arguments.
Exemples (et sortie de mon ordinateur)
C'est le total pour toutes les montures locales:
$ df --total -hl
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 14G 12G 2,1G 85% /
none 490M 660K 489M 1% /dev
none 497M 1,5M 495M 1% /dev/shm
none 497M 260K 496M 1% /var/run
none 497M 0 497M 0% /var/lock
/dev/sda1 3,7G 418M 3,3G 12% /fastdisk
total 19G 12G 7,3G 62%
Restreindre à quelques lecteurs (notez que si le chemin spécifié n'est pas un point de montage exact, le point de montage contenant le plus proche est utilisé [voir note à la fin] ):
$ df -hl --total /home /fastdisk
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 14G 12G 2,1G 85% /
/dev/sda1 3,7G 418M 3,3G 12% /fastdisk
total 17G 12G 5,3G 69%
ou en utilisant des dev
noms:
$ df -hl --total /dev/sda1 /dev/sdb1
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 3,7G 418M 3,3G 12% /fastdisk
/dev/sdb1 14G 12G 2,1G 85% /
total 17G 12G 5,3G 69%
Personnalisation supplémentaire
Si vous souhaitez répertorier tous les montages à l'exception des montages «spéciaux», vous pouvez utiliser l' -x
option pour exclure par type de partition. (Utilisez l' -T
option pour afficher les types.)
Personnellement, pour une utilisation interactive, j'utilise l'alias bash suivant (ajouté à ~/.bash_aliases
) pour exclure les montages «non physiques».
alias df='df -h -x devtmpfs -x tmpfs -x debugfs'
Remarque
La spécification de chemins dans les points de montage peut parfois donner des résultats sous une forme différente en spécifiant le chemin exact vers le point de montage. Par exemple, sur mon ordinateur portable, j'utilise sshfs
pour monter mon serveur de fichiers (local).
df -h ~/.server-root/ ~/.server-root/disks/A ~/.server-root/disks/B
Filesystem Size Used Avail Use% Mounted on
johan@server:/ 185G 58G 118G 33% /home/johan/.server-root
johan@server:/ 1,9T 637G 1,2T 35% /home/johan/.server-root
johan@server:/ 1,8T 1,1T 757G 59% /home/johan/.server-root
La racine du serveur ( /
) est montée sur ~/.server-root
. Cependant, sur le serveur, des disques sont montés sur /disks/*
lesquels df
(sur l'ordinateur portable) ne «savent» pas.
Évidemment, df
peut répertorier l'utilisation du disque sur les différents supports du serveur, si les chemins d'accès appropriés leur sont fournis. Cependant, il montre le même «système de fichiers» et «monté sur» pour tous les chemins, car (je crois) c'est le seul point de montage (relatif à ce sshfs
montage) dans la table de montage du noyau local.
Autre chose: pas vraiment lié à la question, mais lié à une réponse précédente à la question.
Additionner les nombres avec un awk
script (ou similaire), comme le font certaines réponses précédemment publiées, n'est pas une bonne idée lors de l'utilisation du -h
drapeau. En effet, une manipulation spéciale est requise. Vous ne pouvez pas simplement faire size+=$2;
pour un champ qui est 418M
sur une ligne et 12G
sur une autre et en tirer quelque chose d'utile…
Pour un exemple avec awk
, ajouter 500M
aux 10.2G
rendements
$ echo -e '500M\n10.2G' | awk '{size+=$1;} END{print size;}'
510.2
510.2 de quoi?
Il y a clairement un problème ici. Donc, juste comme astuce à retenir , lorsque vous effectuez un calcul (automatisé) sur la sortie de df
(et d'autres qui peuvent utiliser des nombres «lisibles par l'homme» ) . Assurez-vous que vous n'utilisez pas l' -h
indicateur et que l'entrée du script de calcul est, à la place, normalisée (par exemple en octets, blocs, Ko ou autres) et effectuez la mise à l' échelle de l'affichage à la fin. Il n'est pas trop difficile, dans la plupart des langages de script et de programmation, d'ajouter quelque chose comme:
If value < threshold Then
print (value),"B"
Else If value < 1024*threshold Then
print (value/1024),"kB"
Else If value < 1024*1024*threshold Then
print (value/1024/1024),"MB"
(and so on...)
où la valeur est en octets et le seuil est une valeur de l'ordre de 1000. Le résultat de cette méthode est que vous pouvez facilement la régler pour produire des valeurs imprimées (à l'exclusion du préfixe) dans une plage souhaitée et avec un nombre de chiffres significatifs pour votre choisir. Par rapport au cas des utilitaires standard avec -h
commutateurs, où le format est souvent fixe.
Bien sûr, ce calcul peut souvent être rendu plus efficace et / ou élégant, mais c'est une question pour la langue spécifique dans laquelle il est écrit. Franchement, s'il est utilisé dans un script utilisateur qui n'est exécuté que de temps en temps pour afficher de manière interactive certaines informations, l'efficacité n'est pas vraiment une préoccupation.