Disque plein : trouver et libérer
Repérer ce qui occupe la place en trois commandes, les coupables habituels, et le piège du fichier supprimé qui ne rend rien.
Un disque plein casse tout d'un coup : la base de données refuse d'écrire, le serveur web renvoie des erreurs, et parfois la machine ne redémarre plus. La bonne nouvelle, c'est que les coupables sont presque toujours les mêmes.
1. Confirmer
df -hPlein sans être plein
Si df -h montre de la place mais que le système refuse d'écrire, vérifiez les inodes avec df -i. Un dossier contenant des millions de petits fichiers — des sessions PHP, des caches — épuise les inodes bien avant les gigaoctets.
2. Trouver
# Les dix plus gros dossiers à la racine
sudo du -h --max-depth=1 / 2>/dev/null | sort -hr | head
# Puis on descend dans le coupable
sudo du -h --max-depth=1 /var 2>/dev/null | sort -hr | headCette descente en escalier est plus rapide que n'importe quel outil : à chaque étage, on suit le plus gros. Pour une vue interactive, ncdu fait la même chose avec des flèches.
sudo apt install ncdu && sudo ncdu /3. Les coupables habituels
| Endroit | Ce qui s'y accumule | Comment nettoyer |
|---|---|---|
| /var/log | Journaux jamais tournés | journalctl --vacuum-time=14d |
| /var/cache/apt | Paquets téléchargés | apt clean |
| /var/lib/docker | Images et conteneurs morts | docker system prune -a |
| /tmp | Fichiers temporaires oubliés | Redémarrer, ou effacer les vieux fichiers |
| Dossier de sauvegardes | Des dumps qui s'empilent | Une politique de rétention |
| /var/lib/mysql | Journaux binaires | PURGE BINARY LOGS, ou expire_logs_days |
Le nettoyage sans risque
sudo apt clean
sudo apt autoremove --purge
sudo journalctl --vacuum-time=14d
docker system prune -a # si vous utilisez DockerLe piège du fichier supprimé
Vous effacez un journal de 10 Go, et df n'affiche pas un octet de plus. C'est normal : tant qu'un processus garde le fichier ouvert, l'espace n'est pas rendu. Il faut redémarrer le service qui le tient.
sudo lsof +L1 | head # les fichiers supprimés encore ouverts
sudo systemctl restart le-service-coupableVider plutôt que supprimer
Pour un journal en cours d'écriture, préférez le vider sur place : l'espace est rendu immédiatement et le service continue d'écrire sans rien remarquer. La commande est : sudo truncate -s 0 /var/log/le-fichier.log
Bloqué malgré tout ? Ouvrez un ticket : on répond en français, et on regarde votre machine si besoin.
Ouvrir un ticket