Retrouver un fichier effacé mais toujours ouvert
Posted by Daniel on 29 Nov 2010 | Tagged as: linux
Il arrive occasionnellement qu'un fichier soit effacé sur le filesystem malgré le fait qu'il soit toujours ouvert dans un processus. Ce problème, aussi connu sous le nom plus pragmatique de "mézouépassélespace", est dans l'immense majorité des cas un problème d'interface chaise-clavier, parfois également appelée erreur humaine.
Le symptôme typique de ce problème est une incohérence entre l'espace annoncé par df et celui annoncé par du, généralement détecté au moment où le filesystem est rempli.
Par exemple :
# df -h /xxx Filesystem Size Used Avail Use% Mounted on /dev/mapper/xxx 1G 1G 0 100% /xxx # du -sh /xxx 350M /xxxPour le retrouver, nous avons fort heureusement une solution simple, pour peu que l'on dispose d'une version pas trop ancienne de lsof :
# lsof | grep deleted coupable 1664 user 1w REG 253,3 4 197939 /xxx/fichier (deleted)Il ne reste plus à ce stade qu'à tuer le coupable, ce qui libèrera automatiquement l'espace alloué au fichier effacé, faisant ainsi rentrer les choses dans l'ordre pour notre filesystem victime.