No space left on device et pourtant il reste de la place
Aug 8, 2011
2 minute read

No space left on device et pourtant il reste de la place

Le problème

J’avais été confronté à ce problème il y a quelques années et je viens de reperdre du temps ce matin de la même manière. Sur le Dockstar, j’essaye bêtement de créer un nouveau script à mettre dans la cron et là le message d’erreur ultime :

No space left on device

Ma première réaction est de faire un df pour me rendre compte qu’il me reste environ 60% de place disponible.

L’explication

Il reste bel et bien de la place disponible mais plus d’inodes. Pour vérifier cela :

df -i

Pour retrouver les fichiers fautifs j’ai emprunté la méthode expliquée ici. Dans mon cas j’ai exécuté les commandes suivantes

for i in /*; do echo $i; find $i |wc -l; done
for i in /var/*; do echo $i; find $i |wc -l; done
for i in /var/lib/*; do echo $i; find $i |wc -l; done

Pour trouver que c’était les sessions PHP (fichiers sess_GUID) qui prenaient une place de folie. J’ai donc ajouté le script suivant dans mon cron.daily :

find /var/lib/php5/ -type f -cmin +1440 -print0 | xargs -r -0 rm

Ce script supprime toutes les sessions vieilles de plus d’une journée (1440 minutes).

Je vais ajouter ce genre de test sur mes machines supervisées par Zabbix car c’est vraiment trompeur.