Diagnostic des problèmes d'espace disque

LinuxBeginner
Pratiquer maintenant

Introduction

Le manque d'espace disque est un problème courant pour les administrateurs système et les développeurs. Lorsqu'un disque est plein, les applications peuvent échouer et le système peut devenir instable. Savoir diagnostiquer et résoudre rapidement ces problèmes est une compétence essentielle.

Dans ce laboratoire, vous endosserez le rôle d'un administrateur système ayant reçu une alerte concernant un espace disque insuffisant. Vous apprendrez une approche systématique pour identifier ce qui consomme l'espace et comment le récupérer en toute sécurité. Vous utiliserez un ensemble d'outils standard de ligne de commande Linux : df, du, find et truncate. À la fin de ce laboratoire, vous serez confiant dans votre capacité à gérer les urgences de base liées à l'espace disque.

Vérifier l'utilisation du disque

Dans cette étape, vous commencerez votre investigation en obtenant une vue d'ensemble de l'utilisation de l'espace disque sur tous les systèmes de fichiers montés. Le meilleur outil pour cette tâche est la commande df (disk free).

La commande df rapporte la quantité d'espace disque utilisée et disponible sur les systèmes de fichiers. L'utiliser avec l'option -h (human-readable, lisible par l'homme) rend la sortie beaucoup plus facile à lire en affichant les tailles en puissances de 1024 (par exemple, Kilooctets, Mégaoctets, Gigaoctets).

Exécutez la commande suivante dans votre terminal pour vérifier l'utilisation actuelle du disque :

df -h

Vous verrez une sortie similaire à celle-ci. Portez une attention particulière à la colonne Use% (Pourcentage d'utilisation), en particulier pour le système de fichiers racine, qui est monté sur /. Un pourcentage élevé ici indique un problème potentiel.

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        40G   38.5G  1.5G  96% /
tmpfs           1.8G     0  1.8G   0% /dev/shm
tmpfs          1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vdb1        20G  1.2G   19G   6% /home/labex/project
...

D'après la sortie d'exemple, vous pouvez voir que le système de fichiers racine (/dev/vda3, monté sur /) est à 96 % de sa capacité. Cela confirme qu'il y a un problème d'espace disque qui doit être résolu.

Identifier les fichiers volumineux

Dans cette étape, après avoir identifié que le disque se remplit, votre prochaine tâche consiste à découvrir quels répertoires consomment le plus d'espace. La commande du (disk usage, utilisation du disque) est parfaite pour cela. Elle estime l'utilisation de l'espace disque par les fichiers.

Nous utiliserons du avec les options suivantes :

  • -s: (summarize, résumer) pour n'afficher qu'un total pour chaque argument.
  • -h: (human-readable, lisible par l'homme) pour afficher les tailles dans un format plus lisible (par exemple, 1K, 234M, 2G).

Vérifions la taille du contenu à l'intérieur de votre répertoire project. Votre répertoire de travail actuel est ~/project, vous pouvez donc utiliser un chemin relatif.

Exécutez la commande suivante pour voir la taille de chaque fichier et sous-répertoire dans le répertoire ~/project :

du -sh ~/project/*

La commande produira une sortie montrant la taille de chaque élément. Vous devriez voir le gros fichier qui a été créé lors de la préparation du laboratoire.

3.0G /home/labex/project/large_data_archive.dat

Cette sortie vous indique qu'un fichier nommé large_data_archive.dat à l'intérieur de votre répertoire de projet occupe 3,0 Go d'espace. Bien que ce soit une source de consommation d'espace, la sortie df de l'étape précédente suggérait un problème plus vaste, qui pourrait se situer en dehors du répertoire personnel (home).

Localiser les fichiers journaux volumineux

Dans cette étape, vous allez enquêter sur une autre cause fréquente des problèmes d'espace disque : les gros fichiers journaux (logs). Les journaux système et applicatifs sont souvent stockés dans le répertoire /var/log. S'ils ne sont pas gérés correctement, ces fichiers peuvent croître indéfiniment.

La commande find est un utilitaire puissant pour rechercher des fichiers et des répertoires. Vous pouvez l'utiliser pour localiser des fichiers en fonction de divers critères, tels que le nom, le type et la taille.

Nous utiliserons find pour rechercher tous les fichiers (-type f) dans le répertoire /var/log qui sont plus grands que 10 Mégaoctets (-size +10M). Étant donné que le répertoire /var/log appartient à l'utilisateur root, vous devrez utiliser sudo pour accorder les privilèges administratifs nécessaires à la commande pour inspecter tous les fichiers.

Exécutez la commande suivante dans votre terminal :

sudo find /var/log -type f -size +10M

La commande analysera le répertoire spécifié et affichera le chemin de tout fichier correspondant aux critères. Votre sortie pourrait montrer plus d'un fichier.

/var/log/syslog
/var/log/journal/deaaf690a67544aaaa83c02167a202c6/user-6000@0005fc8f16f7df1a-7ea5bde2c8c33f92.journal~

La sortie montre clairement que /var/log/syslog est plus grand que 10 Mo. Bien que d'autres fichiers volumineux comme les journaux journal puissent également être présents, nous nous concentrerons sur syslog pour cet exercice. Vous avez maintenant identifié un fichier journal spécifique et volumineux qui contribue au problème d'espace disque.

Nettoyer un fichier journal

Dans cette étape, maintenant que vous avez identifié un gros fichier journal, vous devez libérer l'espace qu'il consomme. Supprimer simplement le fichier avec rm peut parfois causer des problèmes si un service est en train d'y écrire activement. Une méthode plus sûre consiste à vider le contenu du fichier sans supprimer le fichier lui-même.

La commande truncate est conçue à cet effet. Elle peut réduire ou étendre la taille d'un fichier à une taille spécifiée. En définissant la taille à zéro, vous videz effectivement le fichier.

Vous utiliserez truncate avec l'option -s 0, qui définit la taille du fichier à 0 octet. Encore une fois, vous aurez besoin de sudo car vous modifiez un fichier système.

Exécutez la commande ci-dessous pour vider le contenu de syslog :

sudo truncate -s 0 /var/log/syslog

Une commande truncate réussie ne produit aucune sortie. Pour vérifier que cela a fonctionné, vous pouvez utiliser la commande ls -lh pour vérifier la nouvelle taille du fichier.

ls -lh /var/log/syslog

La sortie devrait maintenant indiquer que la taille du fichier est de 0.

-rw-r----- 1 syslog adm 0 Oct 22 15:31 /var/log/syslog

Vous avez réussi et en toute sécurité à vider le gros fichier journal, libérant ainsi de l'espace disque.

Vérifier la correction

Dans cette étape, vous allez effectuer l'action finale et la plus importante : vérifier que vos efforts ont résolu le problème d'espace disque. Vous utiliserez à nouveau la commande df -h, tout comme vous l'avez fait à la première étape.

En comparant la nouvelle sortie avec celle d'origine, vous pouvez confirmer que de l'espace disque a été libéré.

Exécutez la commande df -h une fois de plus :

df -h

Vous devriez voir une sortie où le Use% (pourcentage d'utilisation) du système de fichiers racine (/) est inférieur à celui de l'Étape 1.

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        40G   37G  3.0G  92% /
tmpfs           1.8G     0  1.8G   0% /dev/shm
tmpfs          1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vdb1        20G  1.2G   19G   6% /home/labex/project
...

L'utilisation est passée de 96 % à 92 %, confirmant que la troncature du fichier journal a fonctionné. Pour terminer le nettoyage, vous pouvez également supprimer le gros fichier de données que vous avez trouvé dans votre répertoire de projet.

rm ~/project/large_data_archive.dat

Maintenant, exécutez df -h une dernière fois pour voir le résultat final de toutes vos actions de nettoyage. L'espace disponible devrait avoir encore augmenté. Cela confirme que vous avez réussi à diagnostiquer et à résoudre le problème d'espace disque.

Résumé

Félicitations pour avoir terminé ce laboratoire ! Vous avez réussi à diagnostiquer et à résoudre un problème courant d'espace disque sur un système Linux.

Dans ce laboratoire, vous avez appris un flux de travail pratique, étape par étape :

  1. Vous avez utilisé df -h pour obtenir une vue d'ensemble de l'utilisation du disque et confirmer un problème.
  2. Vous avez utilisé du -sh pour inspecter la taille de répertoires spécifiques et identifier les gros fichiers.
  3. Vous avez utilisé find pour rechercher des fichiers basés sur des critères spécifiques, tels que la taille, afin de localiser les gros fichiers journaux.
  4. Vous avez appris à utiliser truncate -s 0 comme moyen sûr de vider un fichier sans le supprimer.
  5. Enfin, vous avez vérifié votre correction en réexécutant df -h pour constater l'espace récupéré.

Ces commandes sont des outils essentiels pour tout utilisateur Linux ou administrateur système. Grâce à ces connaissances, vous êtes désormais mieux préparé pour assurer le bon fonctionnement de vos systèmes.