la commande du sous Linux

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 /

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

Partagez votre amour
meher makloufi
meher makloufi

Je suis un tunisien né en 1993, diplômé en informatique de gestion. Je travaille comme développeur web depuis 2016, et je suis un chercheur en informatique passionné. Je partage du contenu qui reflète mon expérience et tout ce que j'ai appris de manière simple et claire pour tous ceux qui cherchent à en savoir plus dans ce domaine. Je possède et gère plusieurs sites web et combine mon amour pour l'art avec la lecture de livres scientifiques, intellectuels et religieux. Je me porte volontaire autant que possible pour enrichir et soutenir la communauté technique arabe d'abord et la communauté mondiale ensuite.

Articles: 45