Lorsque sur un serveur sous GNU/linux l’espace disque disponible est devenu critique, le premier réflexe est de supprimer les fichiers de log ou autres locale, qui prennent trop de place.
Mais si la suppression se fait en mode « sauvage », il se peut qu’aucun espace disque soit libéré !
Dans ce cas, il faut vérifier si des processus ont gardés ouvert ces fichiers, qui ont été supprimés. Ces processus deviennent des processus fantôme.
Vérification de l’espace disque
- Vérification des partitions avec la commande
df -h
: - Mais si je vérifie avec la commande ncdu :
Ici dans mon cas sur ce serveur, il n’y a plus d’espace disque de disponible.
hummm, en faite d’après la commande ncdu, la partition racine n’occupe que 3.2Go de données !
Identifier les processus
Pour identifier les processus en cours d’exécution, qui n’ont pas libérer les fichier seront identifiés via la commande lsof
avec comme argument +L1
:
lsof +L1
D’après le man de lsof :
« +L1 » will select open files that have been unlinked.
Pour revenir à mon cas :
Les processus qui n’ont pas libérés les fichiers supprimés sont identifiés avec l’argument (deleted)
en fin de ligne.
Pour libérer de l’espace, il faut soit redémarrer le processus si c’est un démon ou le tuer.
Une fois tous les processus redémarrés ou tués, on retrouve de l’espace disque sans avoir eu besoin de redémarrer notre système GNU/Linux. De toute façon, un Linux ne se redémarre jamais ;-)