Maîtriser la commande df sous Linux

Introduction

Recevoir une alerte critique annonçant un message du type « No space left on device » constitue un incident classique pour tout administrateur système. Dans une telle situation d’urgence, l’utilitaire df (Disk Free) s’impose comme le réflexe d’investigation primordial. Ce guide technique détaille la conversion des métriques de stockage en formats exploitables, le filtrage ciblé des systèmes de fichiers réels par rapport aux montages virtuels, ainsi que l’identification préventive de la saturation des inodes — un scénario vicieux empêchant tout nouvel enregistrement malgré des gigaoctets apparemment disponibles. Enfin, nous aborderons la divergence récurrente observée entre les métriques rapportées par df et du, causée par des descripteurs de fichiers non libérés.

1. Analyse initiale du stockage et conversion en unités intelligibles (df -h)

L’utilitaire df sonde les tables de montage du noyau afin d’évaluer la réserve d’espace restante sur l’ensemble des systèmes de fichiers actuellement rattachés à la machine.
Invoqué sans commutateur, il renvoie des volumes bruts calculés en blocs d’un kilooctet (1K-blocks), une présentation peu intuitive qui complexifie l’estimation rapide de l’état des disques.
⚙️ [Commutateurs indispensables]

-h : convertit les valeurs brutes en multiples standardisés et lisibles (Ko, Mo, Go).
-T : affiche explicitement le pilote du système de fichiers sous-jacent (ext4, xfs, overlay, etc.).
-i : substitue le décompte des blocs physiques par l’état d’allocation de la table des nœuds d’index (inodes).
-t : restreint l’affichage aux seules partitions correspondant au type spécifié.
-x : écarte explicitement de la restitution les catégories de systèmes de fichiers mentionnées.

Affichage par défaut de la commande df en blocs de 1K

L’ajout de l’argument -h (–human-readable) adapte automatiquement l’échelle des chiffres selon leur ordre de grandeur pour offrir une lecture instantanée.
Comme l’illustre la capture ci-dessous, les longues chaînes de chiffres cèdent la place à des représentations compactes en mégaoctets (M) et gigaoctets (G), facilitant grandement le diagnostic opérationnel des partitions saturées.

Visualisation de l’espace disque avec l’option -h

2. Élagage des montages virtuels et ciblage des partitions critiques (df -h -x / -t)

L’instruction df -h -x tmpfs -x devtmpfs -x squashfs tire parti de l’argument -x (–exclude-type), répété à la demande, pour purger le tableau de bord des systèmes de fichiers éphémères et en mémoire.
Sur les distributions Ubuntu modernes, la prolifération des conteneurs Snap au format squashfs ainsi que les zones de mémoire partagée tmpfs et devtmpfs encombrent inutilement la sortie standard, masquant l’essentiel.
En écartant ces structures auxiliaires, l’administrateur dégage une vue épurée se concentrant uniquement sur le stockage persistant et les points de montage majeurs.

Filtrage des systèmes de fichiers virtuels avec l’option -x

À l’inverse, l’invocation df -h -t ext4 exploite le drapeau -t (–type) pour limiter l’inspection à une technologie de stockage donnée.
En isolant exclusivement les volumes formatés sous le standard ext4, vous éliminez le bruit visuel pour suivre avec une grande précision l’évolution du taux d’occupation de vos partitions système et applicatives principales.

Ciblage exclusif des partitions ext4 avec l’option -t

3. Blocage en écriture malgré un disque spacieux : diagnostiquer l’épuisement des inodes (df -i)

Afin d’expérimenter la surveillance des index de fichiers, nous préparons une arborescence dédiée au sein de laquelle nous instancions dix fichiers textuels vides.

Préparation d’un dossier de test et création de fichiers via touch

La commande df -i /tmp/df-test cible l’analyse sur la structure de métadonnées du système de fichiers englobant l’arborescence désignée.
Même si un volume affiche plusieurs dizaines de gigaoctets de blocs libres, l’impossibilité d’allouer de nouvelles entrées survient dès que le quota d’inodes est entièrement consommé (taux IUse% atteignant 100 %).
L’analyse des colonnes Inodes (capacité globale de la table), IUsed (enregistrements consommés) et IFree (index vacants) permet de vérifier sans équivoque si la limite structurelle du nombre de fichiers a été franchie.

Inspection du taux d’occupation des inodes via df -i

Une fois ce diagnostic d’indexation validé, l’exécution de rm -rf /tmp/df-test assure la suppression propre du répertoire d’essai et de son contenu temporaire.

Nettoyage du répertoire temporaire d’expérimentation

4. Retours d’expérience en production : divergence de métriques entre df et du due aux fichiers fantômes

Dans l’optique d’auditer les processus maintenant des descripteurs de fichiers actifs, nous vérifions la présence du paquet d’investigation lsof et procédons à son déploiement si nécessaire.

Vérification et installation du paquet lsof

L’instruction lsof +L1 liste spécifiquement les fichiers ouverts par des processus en cours d’exécution dont le compteur de liens physiques est descendu à zéro (fichiers détachés du système de fichiers mais non libérés en mémoire).
Lorsqu’un administrateur supprime un journal applicatif volumineux via rm alors que le service producteur continue d’écrire dedans, le système d’exploitation ne libère pas les blocs physiques tant que le descripteur reste ouvert : du indiquera que l’espace a disparu, tandis que df continuera de signaler un disque plein.
En identifiant le PID (identifiant de processus) responsable dans le rapport de lsof, il suffit de redémarrer ou de stopper proprement le démon en cause pour forcer la fermeture du descripteur et restituer instantanément la capacité de stockage au système.

Détection des descripteurs de fichiers non libérés à l’aide de lsof

Vous disposez désormais d’une vision approfondie des fonctionnalités essentielles offertes par df, enrichie de réflexes d’investigation indispensables face aux pièges d’allocation les plus insidieux sous Linux.
L’intégration de ces vérifications dans vos routines d’exploitation vous permettra d’anticiper les saturations et de maintenir la disponibilité continue de vos infrastructures.