Surveiller et libérer l'espace disque
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
df -h
df -i
sudo du -xhd1 /var | sort -rh | head -20df -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 :
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
sudo find / -xdev -type f -size +500M -ls 2>/dev/null
sudo lsof +L1lsof +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 :
docker system df
docker system df -vLa 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
sudo apt clean
sudo apt autoremove --purge
sudo journalctl --vacuum-size=200M
sudo systemd-tmpfiles --cleanRelisez la liste proposée par autoremove avant de confirmer. Pour les conteneurs arrêtés et les images non utilisées :
docker system pruneSans -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 :
sudo truncate -s 0 /var/log/mon-app.logLe 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 -rfsur un chemin mal orthographié ne pardonne pas. - Configurez
logrotatepour 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
dfne signale un disque plein.
Vérifier
df -h
df -i
sudo du -xhd1 / | sort -rh | headAprè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
- Lire les logs avec journalctlFiltrer par service et par date, retrouver une erreur de démarrage et maîtriser l'espace du journal.
- Surveiller la RAM et le CPUDistinguer cache et mémoire réellement utilisée, lire la charge et repérer un processus tué par l'OOM killer.
- Planifier des tâches avec cronÉcrire une crontab fiable, journaliser la sortie et choisir entre cron et timer systemd.