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.