Commande Linux du : Estimation de l'espace fichier

LinuxBeginner
Pratiquer maintenant

Introduction

Dans cet atelier, nous allons explorer la commande du (disk usage), un outil puissant sous Linux pour estimer et analyser l'occupation de l'espace disque. Imaginez que vous êtes un administrateur système chargé de gérer un serveur de fichiers dont le volume de données croît rapidement. Votre mission consiste à identifier les répertoires et les fichiers les plus volumineux afin d'optimiser l'utilisation du stockage. La commande du sera votre meilleur allié pour mener à bien cette enquête sur l'espace disque.

Comprendre les bases de du

La commande du est votre première ligne de défense pour comprendre comment votre disque est utilisé. Commençons par examiner ses fonctionnalités de base.

Tout d'abord, naviguons vers le répertoire du projet où nous allons mener notre investigation :

cd ~/project

Maintenant, exécutons une commande du simple :

du

Astuce : Les fichiers et dossiers sont créés de manière aléatoire et leurs tailles le sont également, les résultats peuvent donc varier à chaque exécution.

Vous verrez une sortie similaire à celle-ci :

0       ./documents/reports
0       ./documents
10240   ./backups
0       ./logs/archive
0       ./logs/system
5120    ./logs/application
5120    ./logs
15360   .

Chaque ligne affiche deux informations :

  1. L'utilisation du disque (en Ko)
  2. Le chemin du répertoire correspondant

Ces chiffres peuvent paraître obscurs au premier abord. Ils représentent l'utilisation du disque en kilo-octets (Ko). Mais ne vous inquiétez pas, nous pouvons les rendre beaucoup plus lisibles !

Exécutons la commande avec l'option -h (human-readable, lisible par l'homme) :

du -h

Vous obtiendrez alors un résultat de ce type :

0       ./documents/reports
0       ./documents
10M     ./backups
0       ./logs/archive
0       ./logs/system
5.0M    ./logs/application
5.0M    ./logs
15M     .

L'option -h convertit les tailles dans un format plus compréhensible (K pour Kilo-octets, M pour Méga-octets, etc.). Cela permet de saisir l'état des lieux d'un simple coup d'œil.

Quelques points à noter :

  • Le point . à la fin représente le répertoire courant (ici ~/project).
  • L'utilisation disque d'un répertoire inclut celle de tous ses sous-répertoires.
  • Les tailles affichées peuvent varier légèrement, car le script de configuration génère des tailles de fichiers aléatoires.

Examiner des répertoires spécifiques

Maintenant que nous maîtrisons les bases, plongeons plus profondément dans certains dossiers. Nous allons nous concentrer sur le répertoire logs, qui semble occuper une place non négligeable.

Tout d'abord, déplaçons-nous dans le dossier des journaux :

cd ~/project/logs

Utilisons maintenant du pour analyser ce répertoire :

du -h

Vous devriez voir quelque chose comme ceci :

0       ./archive
0       ./system
5.0M    ./application
5.0M    .

Cela nous donne le détail de l'occupation disque pour chaque sous-répertoire. Mais que faire si nous ne voulons voir que le total global du répertoire logs ?

Nous pouvons utiliser l'option --max-depth pour limiter la profondeur d'analyse de la structure des dossiers :

du -h --max-depth=0

Cela n'affichera que le total pour le répertoire courant :

5.0M    .

L'argument --max-depth=0 indique à du de ne montrer que le dossier actuel, sans détailler les sous-répertoires.

Pour voir uniquement les sous-répertoires de premier niveau, utilisez --max-depth=1 :

du -h --max-depth=1

Résultat :

0       ./archive
0       ./system
5.0M    ./application
5.0M    .

Cela offre une vision plus claire des dossiers qui consomment le plus d'espace.

L'option --max-depth est particulièrement utile lorsque vous travaillez avec des structures de répertoires très imbriquées et que vous souhaitez vous concentrer sur un niveau hiérarchique précis.

Trier et analyser l'utilisation du disque

Maintenant que nous avons identifié les sous-répertoires les plus lourds, apprenons à trier les résultats. Cela nous aidera à repérer instantanément les plus gros consommateurs d'espace.

Nous allons combiner la commande sort avec du. Si vous n'êtes pas familier avec sort, pas d'inquiétude : nous allons expliquer son fonctionnement.

Commençons par trier la sortie de du par taille :

du -h | sort -h

Cette commande effectue deux actions :

  1. du -h : Calcule l'utilisation disque dans un format lisible.
  2. | : C'est un "pipe" (tube). Il prend la sortie de la commande de gauche et l'envoie comme entrée à la commande de droite.
  3. sort -h : Trie l'entrée numériquement en tenant compte des unités de mesure (Ko, Mo, Go).

Le résultat ressemblera à ceci :

0       ./archive
0       ./system
5.0M    .
5.0M    ./application

La liste est triée du plus petit au plus grand. Cependant, nous sommes souvent plus intéressés par les dossiers les plus volumineux en premier. Pour inverser l'ordre, ajoutons l'option -r (reverse) à sort :

du -h | sort -hr

Résultat :

5.0M    ./application
5.0M    .
0       ./system
0       ./archive

Nous voyons désormais clairement quels dossiers occupent le plus de place, par ordre décroissant.

Pour se concentrer uniquement sur les sous-répertoires directs et les trier, nous pouvons combiner les techniques apprises :

du -h --max-depth=1 | sort -hr

Cette commande affichera et triera uniquement les dossiers situés immédiatement sous le répertoire courant.

N'oubliez pas que la puissance de la ligne de commande réside dans la combinaison de commandes simples pour réaliser des opérations complexes. Nous venons d'associer du, sort et diverses options pour analyser rapidement l'espace disque !

Trouver les fichiers les plus volumineux

Jusqu'à présent, nous avons examiné la taille des répertoires. Mais comment faire pour trouver les fichiers spécifiques qui saturent le disque ? La commande du travaille principalement sur les dossiers, mais nous pouvons la coupler à d'autres outils pour débusquer les gros fichiers.

Nous allons utiliser la commande find avec du. Voici comment procéder.

D'abord, revenons à la racine du projet :

cd ~/project

Utilisons maintenant find et du pour localiser les fichiers les plus imposants :

find . -type f -exec du -h {} + | sort -hr | head -n 5

Cette commande peut sembler complexe, décomposons-la :

  1. find . -type f : Cherche tous les fichiers (-type f) dans le répertoire courant (.) et ses sous-répertoires.
  2. -exec du -h {} + : Exécute du -h sur chaque fichier trouvé. Les accolades {} sont remplacées par le nom du fichier, et le + permet de passer plusieurs fichiers à la fois pour gagner en efficacité.
  3. sort -hr : Trie les résultats par taille, du plus grand au plus petit.
  4. head -n 5 : N'affiche que les 5 premiers résultats.

Vous devriez obtenir une sortie de ce type :

10M     ./backups/large_backup.bak
5.0M    ./logs/application/large_app_log.log
0       ./logs/system/placeholder.log
0       ./logs/archive/placeholder.log
0       ./logs/application/placeholder.log

Cela nous montre les cinq fichiers les plus volumineux du projet.

Pour cibler les fichiers dépassant une certaine taille, nous pouvons modifier la commande. Cherchons les fichiers de plus de 1 Mo :

find . -type f -size +1M -exec du -h {} + | sort -hr

Ici, nous avons ajouté -size +1M pour filtrer uniquement les éléments supérieurs à 1 méga-octet.

Ces commandes sont extrêmement utiles pour libérer de l'espace, car elles permettent d'identifier rapidement les meilleurs candidats à la suppression ou à l'archivage.

Générer un rapport d'utilisation du disque

Pour conclure notre investigation, créons un rapport complet de l'utilisation disque pour l'ensemble du projet. Ce document permettra de synthétiser nos découvertes et de les présenter à une équipe.

Assurez-vous d'être dans le bon répertoire :

cd ~/project

Créons maintenant un rapport détaillé et sauvegardons-le dans un fichier :

du -h --max-depth=2 | sort -hr > disk_usage_report.txt

Analyse de la commande :

  1. du -h --max-depth=2 : Analyse l'espace jusqu'à deux niveaux de profondeur.
  2. sort -hr : Trie par taille décroissante.
  3. > disk_usage_report.txt : Enregistre le résultat dans un fichier. Le symbole > est un opérateur de redirection : il intercepte ce qui devrait s'afficher à l'écran pour l'envoyer dans un fichier.

Maintenant que le rapport est prêt, consultons son contenu :

cat disk_usage_report.txt

Vous devriez voir la liste complète des dossiers et leurs tailles respectives.

Pour obtenir un résumé rapide des dossiers les plus lourds, utilisez la commande head :

head -n 10 disk_usage_report.txt

Cela affichera les 10 répertoires les plus gourmands en espace.

Ce rapport est un outil précieux pour identifier les zones du projet qui consomment le plus de ressources, ce qui facilite les décisions d'optimisation ou les discussions sur l'allocation des ressources.

Résumé

Dans cet atelier, nous avons exploré la puissance de la commande du et ses applications pour la gestion de l'espace disque. Nous avons appris à :

  1. Utiliser la commande du de base pour estimer l'occupation disque.
  2. Rendre les résultats lisibles avec l'option -h.
  3. Analyser des dossiers spécifiques et limiter la profondeur avec --max-depth.
  4. Trier et interpréter les résultats.
  5. Localiser les fichiers les plus volumineux.
  6. Générer des rapports d'utilisation disque complets.

Ces compétences sont essentielles pour tout administrateur système ou utilisateur avancé gérant des ressources de stockage.

D'autres options de du non abordées ici incluent :

  • -s : Affiche uniquement le total pour chaque argument.
  • -c : Produit un total général à la fin.
  • -a : Affiche l'utilisation pour les fichiers en plus des répertoires.
  • --time : Affiche la date de dernière modification pour chaque répertoire.
  • --exclude=MOTIF : Exclut les fichiers ou répertoires correspondant au MOTIF.