la commande df sous Linux : Explication pratique et détaillée

Dans le monde des systèmes d’exploitation, notamment Linux, la gestion de l’espace de stockage est une tâche essentielle que tout utilisateur, qu’il soit débutant ou expérimenté, doit maîtriser. La commande df (abrégé de « disk free ») est l’une des outils de base et essentiels pour cette tâche, car elle offre une vue rapide et globale de l’utilisation de l’espace de stockage dans les systèmes de fichiers montés.

Mais pourquoi la commande df est-elle si importante ? Imaginez que vous travailliez sur un serveur Linux sensible, et tout à coup, vous commencez à recevoir des messages d’alerte indiquant que l’espace de stockage est plein. Sans comprendre comment utiliser la commande df correctement, vous seriez comme un capitaine de navire essayant de traverser l’océan sans boussole ou cartes. Cette commande simple peut faire la différence entre un système fonctionnant en douceur et un système complètement bloqué.

Quel que soit le fait que vous surveilliez l’espace sur votre ordinateur personnel ou sur un serveur de travail, maîtriser la commande df vous donne le contrôle de vos ressources de stockage et vous aide à maintenir votre système en marche de manière fluide et efficace.

Qu’est-ce que la commande df sous Linux ?

La commande df (abrégé de « disk free ») est un outil de commande standard dans les systèmes Unix et Linux qui fournit des informations sur l’espace de stockage disponible sur les systèmes de fichiers montés. Lorsqu’elle est exécutée sans options, `df` affiche une liste de tous les systèmes de fichiers actuellement montés, avec des informations sur leur capacité totale, l’espace utilisé, l’espace disponible, et le pourcentage d’utilisation.

L’histoire de la commande df remonte aux premières versions du système Unix dans les années 1970, ce qui en fait l’une des commandes les plus anciennes encore largement utilisées aujourd’hui. C’est une commande fondamentale en raison de sa simplicité d’utilisation et de sa puissance. Elle n’a généralement besoin d’aucun autre outil d’installation sur la plupart des distributions Linux, puisqu’elle est incluse dans l’ensemble de base GNU coreutils.

Pour comprendre le fonctionnement de la commande df, examinons un exemple basique :


df

Lors de l’exécution de cette commande, vous obtiendrez une sortie similaire à celle-ci (les détails peuvent varier selon votre système) :


Filesystem 1K-blocks Used Available Use% Mounted on
udev 4037352 0 4037352 0% /dev
tmpfs 814320 1740 812580 1% /run
/dev/sda1 245268912 78638508 154131584 34% /
tmpfs 4071588 52184 4019404 2% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 4071588 0 4071588 0% /sys/fs/cgroup
/dev/sdb1 960380416 35432512 924947904 4% /mnt/data
tmpfs 814320 80 814240 1% /run/user/1000

Dans cet exemple, nous voyons plusieurs colonnes importantes :
Filesystem : Identifie le périphérique ou la source du système de fichiers
1K-blocks : La taille totale du système de fichiers en blocs de 1 kilo-octet (1024 octets). Il est important de savoir que cette valeur représente la capacité totale utilisable, et non nécessairement la capacité physique du périphérique.
Used : Le nombre de blocs de 1 kilo-octet utilisés actuellement. Cela inclut généralement toutes les données réservées par les fichiers, y compris celles réservées par le système et non visibles aux utilisateurs normaux.
Available : Le nombre de blocs de 1 kilo-octet disponibles pour créer des nouveaux fichiers. Cette valeur est souvent inférieure à « Total utilisé – utilisé » car le système de fichiers réserve généralement une partie de l’espace pour les opérations système ou l’utilisation exclusive du root.
Use% : Le pourcentage d’espace utilisé par rapport à la capacité totale, calculé comme (Utilisé / Total) * 100.
Mounted on : Le point de montage où le système de fichiers est accessible.

La commande df s’appuie sur la lecture d’informations depuis le fichier `/etc/mtab` (ou `/proc/mounts` dans certains systèmes) qui maintient une liste des systèmes de fichiers actuellement montés, puis elle interroge la taille de stockage grâce à des appels système tels que `statvfs()`.

Il est important de noter que la commande df fournit des informations en temps réel, ce qui en fait un outil fiable pour vérifier l’état actuel du stockage. Toutefois, ses résultats peuvent légèrement varier lorsqu’ils sont comparés à des outils tels que du, car ceux-ci utilisent des méthodes de calcul différentes.

Dans la section suivante, nous explorerons plus en détail la lecture et l’interprétation des résultats de la commande df, en expliquant les unités utilisées et comment comprendre les chiffres qu’elle affiche.

Lecture et compréhension des résultats de la commande df

Comprendre correctement la sortie de la commande `df` est une étape fondamentale pour tirer pleinement parti de cette outil. En nous approfondissant dans l’analyse de chaque élément de la sortie, nous expliquerons comment interpréter de manière correcte ces informations.

Lors de l’exécution de `df` sans options, les colonnes suivantes sont affichées :

1. Filesystem : Affiche le nom du périphérique ou de la source du système de fichiers. Ce peut être :
– Un périphérique physique comme `/dev/sda1`
– Un système de fichiers virtuel comme `udev` ou `tmpfs`
– Un système de fichiers réseau comme `server:/share`

2. 1K-blocks : La capacité totale du système de fichiers en unités de blocs de 1 kilo-octet (1024 octets). Il est important de savoir que cette valeur représente la capacité totale utilisable, et non le volume physique du périphérique.

3. Used : Le nombre de blocs de 1 kilo-octet utilisés actuellement. Cela inclut normalement toute la mémoire réservée par les fichiers, y compris ce qui peut être réservé par le système mais non visible aux utilisateurs normaux.

4. Available : Le nombre de blocs de 1 kilo-octet disponibles pour créer de nouveaux fichiers. Cette valeur est souvent inférieure à « Total utilisé – utilisé » car le système de fichiers réserve une partie de l’espace pour les opérations système ou pour utiliser uniquement le root.

5. Use% : Le pourcentage d’espace utilisé par rapport à la capacité totale, calculé comme (Utilisé / Total) * 100.

6. Mounted on : Le point dans l’arborescence des fichiers où le système de fichiers est monté, comme `/` pour le racine ou `/home` pour les dossiers utilisateurs.

Unités de mesure différentes

Par défaut, `df` affiche l’espace en unités de blocs de 1 ko, mais des options permettent de changer cela :


df -h # Affiche les tailles en unités lues par l'humain (KB, MB, GB)
df -m # Affiche les tailles en mégaoctets
df -k # Affiche les tailles en kilo-octets (valeur par défaut)
df -i # Affiche des informations sur les inodes plutôt que l'espace

Par exemple, df -h produit une sortie plus facile à lire :


Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 796M 1.7M 794M 1% /run
/dev/sda1 234G 75G 147G 34% /

Lecture des informations sur les inodes

En utilisant l’option -i, la commande df change son focus du stockage vers le nombre d’inodes qui représentent les structures de données associées aux fichiers dans un système de fichiers :


df -i

La sortie ressemblera à :


Filesystem Inodes IUsed IFree IUse% Mounted on
udev 504669 415 504254 1% /dev
tmpfs 508949 776 508173 1% /run
/dev/sda1 15638528 657832 14980696 5% /

Cela est particulièrement utile lorsqu’un système de fichiers est plein en termes d’inodes, même si de l’espace de stockage est encore disponible. Cette commande est utile pour identifier les problèmes dans les systèmes contenant un grand nombre de fichiers petits.

Interprétation des résultats

Imaginons que vous voyez la sortie suivante :


Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 245268912 230000000 10000000 96% /

Comment interpréter ce résultat ?
1. Le système de fichiers `/dev/sda1` est presque plein à 96% ; cette situation est critique.
2. Il reste seulement 10 Go libres sur 245 Go.
3. Lorsque le pourcentage d’utilisation (Use%) se rapproche de 100%, le système peut rencontrer des problèmes avec :
– La création de nouveaux fichiers
– La mise à jour des fichiers existants
– L’exécution de certaines opérations système

Dans ce cas, il est nécessaire de prendre des mesures rapides pour libérer de l’espace ou étendre le système de fichiers.

Dans la section suivante, nous explorerons plusieurs scénarios pratiques de l’utilisation de `df` pour résoudre des problèmes réels.

Utilisation de df dans des scénarios pratiques

Après avoir maîtrisé les bases et les usages courants de la commande df, il est temps d’explorer certaines techniques avancées, les astuces utiles, et les solutions aux problèmes courants que vous pouvez rencontrer lors de l’utilisation de cette outil.

Comprendre la différence entre df et du

L’une des sources les plus courantes de confusion est la différence entre ce que montre df et du. Les différences principales :

df :
– Affiche l’espace sur le niveau du système de fichiers
– Prend en compte l’espace réservé par le système
– Reflète l’état actuel (y compris les fichiers supprimés mais ouverts)

du :
– Calcule l’espace utilisé par les fichiers réellement stockés
– Ne prend pas en compte l’espace réservé
– Nécessite l’accès à chaque fichier pour calculer sa taille

Lorsqu’il y a un écart important entre les deux, le cause peut être :
– Des fichiers supprimés toujours ouverts par des processus
– Des différences dans l’espace réservé
– Des problèmes dans le système de fichiers (nécessite un fsck)

Pour trouver les fichiers supprimés (mais encore ouverts) qui utilisent de l’espace :


lsof +L1 # Affiche les fichiers supprimés (comptage des liens = 1)

Découverte des problèmes

En cas de plein de l’espace (ou d’utilisation proche de 100%), voici les étapes pour enquêter :

1. Vérifier l’espace disponible


df -h

2. Rechercher les fichiers importants


find /mount/point -type f -exec du -h {} + | sort -h | tail -n 20

3. Vérifier les journaux système


journalctl --disk-usage
journalctl --vacuum-size=100M # pour réduire la taille des journaux

4. Visualiser les systèmes de fichiers


# Pour les systèmes basés sur RPM :
package-cleanup --leaves
# Pour les systèmes basés sur Debian :
apt-get autoremove

Sources et ressources

Pour plus d’informations et pour vérifier les données contenues dans ce tutoriel, voici quelques sources fiables :

1. Page officielle du Gnub Coreutils
2. La page man officielle de df (accessible via `man df` sur un système Linux)
3. Documentation Linux Project
4. Le livre « Linux Command Line and Shell Scripting Bible » est une excellente source pour comprendre les outils de base Linux
5. Articles Red Hat sur la gestion du stockage

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