df interroge le superbloc : combien de blocs le FS déclare occupés. du marche dans l’arbre et additionne les tailles des inodes qu’il voit. S’ils divergent, ce n’est pas que Linux « se trompe ». C’est que les deux ne regardent pas le même ensemble.
1. Fichier unlinké, descripteur encore ouvert.
Un processus écrit un journal de 20 Go. Quelqu’un fait rm sur le fichier. L’entrée de répertoire disparaît : du ne le compte plus. Les blocs restent alloués jusqu’au close : df ne baisse pas. C’est l’écart le plus classique après un « on a tout nettoyé ».
sudo lsof +L1
sudo lsof 2>/dev/null | grep deletedLe remède est de redémarrer ou d’envoyer un signal au processus (ou truncate avant le rm la prochaine fois). Pas un second nettoyage de /var.
2. Vous ne mesurez pas le même mount.
du -h /var descend dans /var/lib/docker qui est peut-être un autre volume. df /var rapporte le FS de /var, pas le bind. Sans -x / -xdev, du additionne des disques que df d’un seul mount ignore — ou l’inverse si vous comparez df / à un du qui s’arrête aux points de montage.
Toujours comparer df -h /chemin et du -xh /chemin sur le même point.
3. Fichiers creux, snapshots, compression.
Un fichier sparse de 1 To apparent pèse peu en blocs : du par défaut peut montrer la taille logique, du --apparent-size l’autre lecture, df les blocs réels. Btrfs / ZFS / thin LVM ont des snapshots : df voit l’occupation réelle, un du naïf compte chaque copie apparente. Ce n’est pas le premier cas en admin généraliste, mais c’est la nuance senior si on vous relance.
« df est la vérité du volume ; du est la vérité de l’arbre visible. Un écart, je cherche d’abord un deleted ouvert, ensuite un mount mal choisi. »
« Comment rendre l’espace sans redémarrer le service ? »
Si le fichier est encore nommé, truncate -s 0 ou une rotation qui rouvre le fichier. Si le nom a déjà disparu, le noyau ne libère qu’au dernier close : on peut parfois gdb / echo > /proc/pid/fd/N selon le contexte, mais en prod le geste propre reste faire rouvrir le journal (reload du démon) plutôt qu’inventer une chirurgie. L’entretien récompense la clarté du mécanisme, pas le hack.