Surveiller et libérer l'espace disque

3 min de lecture07 novembre 2026

Un disque plein ne se contente pas de bloquer les écritures : les bases de données peuvent refuser une transaction, les journaux s'arrêtent et SSH peut même échouer à ouvrir une session. Sur un VPS de 20 ou 40 Go, la marge part vite. La bonne méthode est de mesurer, d'identifier le coupable, puis de supprimer avec une sauvegarde à portée de main.

Mesurer l'occupation

Bash
df -h
df -i
sudo du -xhd1 /var | sort -rh | head -20

df -h montre l'espace par système de fichiers. df -i montre les inodes : un disque peut avoir de l'espace libre et être saturé par des millions de petits fichiers. du -x reste sur le même système de fichiers et évite de parcourir /proc ou un montage réseau. Sans -x, une analyse de / peut devenir très lente.

Installez ncdu pour explorer de façon interactive :

Bash
sudo apt install ncdu
sudo ncdu -x /

Les coupables habituels :

Chemin Contenu Action
/var/log Journaux système et applicatifs rotation, vacuum
/var/cache/apt Paquets téléchargés apt clean
/var/lib/docker Images, conteneurs, volumes docker system df
/tmp Fichiers temporaires nettoyage tmpfiles
/home et /srv Données et sauvegardes audit manuel

Trouver le fichier ou processus fautif

Bash
sudo find / -xdev -type f -size +500M -ls 2>/dev/null
sudo lsof +L1

lsof +L1 liste les fichiers supprimés encore ouverts par un processus. Leur espace n'est libéré qu'à l'arrêt ou au rechargement de ce processus : un fichier de log supprimé peut donc continuer à remplir le disque.

Pour Docker :

Bash
docker system df
docker system df -v

La première commande sépare images, conteneurs, volumes et cache de construction. Ne supprimez jamais un volume à l'aveugle : il peut contenir les données d'une base.

Libérer sans casser

Bash
sudo apt clean
sudo apt autoremove --purge
sudo journalctl --vacuum-size=200M
sudo systemd-tmpfiles --clean

Relisez la liste proposée par autoremove avant de confirmer. Pour les conteneurs arrêtés et les images non utilisées :

Bash
docker system prune

Sans -a, cette commande ne supprime pas les images utilisées par un conteneur existant. docker image prune -a et docker volume prune sont plus agressives : vérifiez ce qui sera supprimé.

Pour un fichier de log détenu par un service, tronquez plutôt que de supprimer :

Bash
sudo truncate -s 0 /var/log/mon-app.log

Le descripteur de fichier reste valide et l'espace est rendu immédiatement.

Bonnes pratiques

  • Sauvegardez avant toute suppression en masse, et vérifiez le point de montage : rm -rf sur un chemin mal orthographié ne pardonne pas.
  • Configurez logrotate pour les journaux applicatifs.
  • Surveillez le seuil à 80 % : df --output=pcent / suffit dans un script cron.
  • Sur un conteneur système, l'espace est limité par le disque alloué au VPS ; les quotas peuvent aussi produire des erreurs d'écriture avant que df ne signale un disque plein.

Vérifier

Bash
df -h
df -i
sudo du -xhd1 / | sort -rh | head

Après nettoyage, l'espace libéré doit apparaître dans df. Si du et df divergent fortement, cherchez un fichier supprimé encore ouvert avec lsof +L1. Testez enfin le service concerné : un nettoyage ne doit pas avoir supprimé ses données.

Publicité

Cet article vous a-t-il aidé ?

À lire aussi