Dans le monde des systèmes d’exploitation, notamment Linux, comprendre comment utiliser l’espace de stockage est une compétence essentielle qui distingue les utilisateurs professionnels des débutants. La commande du (abrégé de « Disk Usage ») est l’une des outils de base indispensables pour analyser la consommation d’espace au niveau des fichiers et répertoires.
Que rend la commande du indispensable ? Imaginez que vous travaillez sur un serveur Linux et que vous êtes surpris par une montée de l’espace de stockage. Alors que la commande df affiche une utilisation d’espace saturée, vous ne savez plus quel fichier ou répertoire consomme cet espace. C’est ici que la commande du devient votre clé pour comprendre exactement où votre précieux espace de stockage est allé.
Que vous soyez administrateur de système nécessitant de surveiller les serveurs, développeur souhaitant optimiser l’utilisation de l’espace des applications, ou utilisateur Linux ordinaire souhaitant mieux comprendre son système, ce guide vous fournira les connaissances pratiques dont vous avez besoin.
Compréhension de base de la commande du
La commande du est un outil de ligne de commande fondamental sous les systèmes Linux et Unix, conçu pour calculer et afficher l’utilisation de l’espace de stockage des fichiers et répertoires. Contrairement à df, qui se concentre sur l’ensemble des systèmes de fichiers, la commande du offre un analyse plus précis au niveau des fichiers et répertoires individuels.
La commande du remonte aux premières versions du système Unix des années 1970, développée comme partie de l’ensemble d’outils de base pour la gestion du système. Aujourd’hui, elle est intégrée à la suite GNU coreutils disponible sur presque toutes les distributions Linux.
La structure de base de la commande du
L’utilisation de base de la commande du est la suivante :
du [options] [fichier/répertoire]
Quand vous appelez du sans options ou arguments, elle scanne le répertoire courant ainsi que tous ses sous-répertoires et affiche l’espace utilisé par chacun d’eux.
Les sorties de base
Considérons un exemple pratique :
du /var/log
Les sorties ressemblent à (varient selon votre système) :
4 /var/log/private
8 /var/log/samba
132 /var/log/installer
1724 /var/log/journal
10264 /var/log
Ici, nous voyons que :
— Chaque ligne affiche la quantité d’espace utilisée (en kilo-octets) suivie du nom du répertoire
— Les chiffres sont cumulatifs, par exemple, le chiffre à côté de `/var/log` inclut tout ce qui se trouve à l’intérieur
— Les sous-répertoires sont affichés en premier, puis les répertoires parents qui les contiennent
Les unités utilisées dans les sorties de la commande du
Par défaut, du affiche l’espace en kilo-octets (KB), mais on peut changer cela avec des options spécifiques :
du -h /var # Affiche les tailles sous forme lisible (KB, MB, GB, TB)
du -k /var # Affiche en kilo-octets (par défaut)
du -m /var # Affiche en mégaoctets
du -b /var # Affiche en octets
Par exemple, la commande `du -h` peut donner :
4.0K /var/log/private
8.0K /var/log/samba
132K /var/log/installer
1.7M /var/log/journal
10M /var/log
La différence entre la commande du et la commande df
Il est important de comprendre la différence fondamentale entre ces deux outils :
— la commande df : donne une vue d’ensemble de l’utilisation de l’espace des systèmes de fichiers
— la commande du : calcule l’espace réellement utilisé par les fichiers et répertoires
Parfois, vous pouvez remarquer un conflit entre l’espace indiqué par df et celui calculé par du. Cela peut être dû à :
— Des fichiers supprimés encore ouverts par des processus
— L’espace réservé pour le système de fichiers lui-même (comme l’espace réservé pour root dans ext4)
— Des erreurs dans le système de fichiers
Dans les sections suivantes, nous explorerons en détail les différentes options de la commande du et comment les utiliser dans des scénarios pratiques variés.
Les options fondamentales et avancées de la commande du
Pour tirer le meilleur parti de la commande du, il est nécessaire de comprendre les options différentes qui permettent de personnaliser ses sorties selon les besoins. Ces options varient de simples à puissantes permettant d’analyser l’utilisation de l’espace de façon détaillée.
1. Affichage des tailles sous forme lisible (-h)
L’option -h (ou –human-readable) convertit les tailles en une forme plus facile à lire (KB, MB, GB) :
du -h /var
Exemple de sortie :
12K /var/local
36K /var/mail
156K /var/opt
2.3M /var/cache
14M /var/log
86M /var/lib
103M /var
2. Détermination du niveau de profondeur (–max-depth)
Pour explorer uniquement à un niveau donné dans l’arborescence des répertoires :
du -h --max-depth=1 /var
Cela affichera l’espace des répertoires directs à l’intérieur de `/var` sans approfondir davantage.
3. Affichage de la taille totale (-s ou –summarize)
Pour afficher la taille totale d’un répertoire sans détails sur son contenu :
du -sh /var/log
Sortie exemple :
14M /var/log
4. Trie des résultats selon la taille
En combinant du avec d’autres commandes, vous pouvez trier les tailles des répertoires :
du -h /var | sort -h
L’option -h dans sort signifie qu’elle interprète les nombres avec leurs unités (K, M, G).
5. Exclusion de certains types de fichiers (–exclude)
Pour calculer l’espace en excluant des fichiers selon un pattern spécifique :
du -h --exclude='*.log' /var
6. Calcul de l’espace y compris les fichiers cachés (-a ou –all)
L’option -a fait de la commande du afficher les fichiers, pas seulement les répertoires :
du -ah /var/log | head -n 5
7. Suivi des liens symboliques (-L ou –dereference)
Par défaut, la commande du ne suit pas les liens symboliques, mais avec -L :
du -Lh /chemin/avec/liens
8. Affichage de l’heure et de la date (–time)
Pour ajouter la date de modification des fichiers :
du -ha --time /var/log | head -n 5
9. Calcul de l’espace avec une précision accrue (–block-size)
Pour ajuster la taille des blocs utilisée dans le calcul :
du --block-size=1M /var # Calcul de l'espace directement en mégaoctets
10. Mise à jour répétée (–repeat)
Sur certaines versions de du, vous pouvez faire en sorte qu’elle affiche l’espace de façon répétée :
du --repeat=5 /var/log # Affiche l'espace toutes les 5 secondes
11. Compteur d’inodes (–inodes)
Pour calculer le nombre d’inodes plutôt que l’espace utilisé :
du --inodes /var
12. Avertissements de capacité (–threshold)
Pour qu’il alerte en cas de dépassement d’une certaine taille :
du -h --threshold=100M /var
13. Profondeur maximale (–max-depth=N)
Pour explorer jusqu’à un niveau donné de l’arborescence :
du -h --max-depth=2 /
14. Liens durs (-l ou –count-links)
En calculant la taille des liens durs comme du contenu original :
du -lh /chemin
15. Mise à jour continue (-c ou –total)
Présentation du total à la fin :
du -ch /var/log/*
16. Exclusion de certains répertoires (–exclude-from=FILE)
Pour exclure en fonction d’une liste dans un fichier :
du -h --exclude-from=exclude_list.txt /
17. Affichage des résultats de manière concise (–summarize)
Pour afficher un résumé seulement, sans détails :
du -s /var
Intégration de du avec d’autres outils et résolution des problèmes
La puissance de la commande du se révèle véritablement lorsqu’elle est combinée avec d’autres outils Linux dans des pipelines ou des scripts. Ce chapitre explore des techniques avancées pour des analyses plus détaillées et pour résoudre des problèmes courants.
1. Intégration de du avec awk pour un analyse avancé
L’option awk vous permet d’analyser les sorties de du avec plus de flexibilité. Exemple pour calculer un total :
du -h /var | awk '
BEGIN { total=0 }
{ if ($1 ~ /[0-9.]+[MG]/) {
size=$1;
sub(/[^0-9.]+/, "", size);
if ($1 ~ /G/) total+=size*1024;
else if ($1 ~ /M/) total+=size;
}
}
END { printf "Total: %.2f MB\n", total }'
Ce script calcule la taille totale dans /var en mégaoctets.
2. Création d’une représentation visuelle des tailles des répertoires
Avec `du` et quelques commandes supplémentaires, créer un graphique simple est possible :
du -sh --block-size=1M /nfs/montage # Éviter l'utilisation des unités lisibles
Par exemple, en évitant le formatage humain pour éviter des problèmes dans certaines applications NFS.
3. Gestion des liens symboliques
En cas de problème lié aux liens symboliques, utiliser :
du -Lh /chemin # Suivre les liens symboliques
du -lh /chemin # Calculer les liens symboliques comme des fichiers séparés
4. Analyse de l’utilisation de l’espace sur des systèmes de fichiers réseau (NFS)
Quand on utilise `du` sur des systèmes de fichiers réseau, on peut avoir besoin de :
du -sh --block-size=1M /nfs/montage # Pour éviter l'utilisation de l'unité lisible
L’unité humaine peut provoquer des problèmes dans certains cas d’application NFS.
5. Gestion des noms de fichiers contenant des espaces
En cas de traitements de chemins contenant des espaces :
find /chemin -type f -print0 | xargs -0 du -h | sort -h
Les options -print0 et -0 assurent un traitement correct des espaces.
6. Accélération de du sur des systèmes de fichiers volumineux
Améliorer le performance sur des systèmes de fichiers grands :
du -hsx / # -x empêche la traversée des limites des systèmes de fichiers
du -hs --timeout=10 /chemin # Sur certaines versions
7. Utilisation de du avec ncdu pour une interface interactive
ncdu est une interface interactive basée sur du :
sudo apt install ncdu # Pour Ubuntu/Debian
sudo yum install ncdu # Pour RHEL/CentOS
ncdu /
8. Analyse de l’espace des utilisateurs
Pour calculer l’espace utilisé par chaque utilisateur :
sudo du -sh /home/* | sort -h
En plus détaillé :
for user in /home/*; do
echo -n "$user: ";
sudo du -sh "$user" | cut -f1;
done | sort -h
9. Suivi des changements dans l’espace de stockage au fil du temps
Création du script /usr/local/bin/track_disk.sh :
#!/bin/bash
LOG="/var/log/disk_usage_$(date +%Y-%m-%d).log"
echo "=== Rapport d'utilisation du stockage $(date) ===" > $LOG
echo "Top 20 répertoires de /:" >> $LOG
du -h --max-depth=1 / 2>/dev/null | sort -h | tail -n 20 >> $LOG
echo "" >> $LOG
Puis l’ajouter à la crontab :
0 0 * * * /usr/local/bin/track_disk.sh
10. Calcul de l’espace utilisé par des processus spécifiques
Pour calculer l’espace utilisé par tous les processus Apache :
ps aux | grep apache | awk '{print $2}' | xargs -I {} lsof -p {} | grep REG | awk '{print $NF}' | xargs du -ch | grep total
Après cette immersion approfondie dans le monde de la commande du sous Linux, vous avez désormais une compréhension solide de la manière d’utiliser cet outil puissant pour analyser la gestion de l’espace de stockage. Commencez dès aujourd’hui à appliquer ce que vous avez appris. Testez quelques commandes sur votre système, créez quelques scripts simples et observez comment ces outils simples peuvent transformer votre interaction avec votre système Linux.
Références et ressources
Pour approfondir le sujet de la commande du et de la gestion d’espace sous Linux, voici quelques sources fiables :
La page officielle de GNU Coreutils (contenant la commande du) :
https://www.gnu.org/software/coreutils/manual/coreutils.html#du-invocation
Page man officielle (disponible sur votre système via man du)
Le livre « The Linux Command Line » de William Shotts – une excellente ressource pour apprendre les commandes Linux
Stack Exchange – Unix & Linux :
https://unix.stackexchange.com/questions/tagged/du
Le site Linux Journey pour un apprentissage interactif :
https://linuxjourney.com/lesson/disk-usage-du-command
Le livre « Linux Administration Handbook » – un guide complet pour la gestion de Linux



Explication de la commande wget sous Linux