Quedarse sin inodes

Respuestas:

24

El número de inodes se establece en el momento en que se formatea la partición. Normalmente, el número de inodos creados es suficiente para casi cualquier propósito; sin embargo, si tiene una gran cantidad de archivos muy pequeños, puede usar los inodos antes de que el disco esté lleno.

Debe encontrar los miles de archivos pequeños que tiene en el sistema que están usando inodos y eliminarlos o moverlos a una partición que se haya configurado específicamente con una gran cantidad de inodos disponibles. No es posible cambiar el número de inodos disponibles en una partición después de que se haya formateado.

El script escrito por paxdiablo en stackoverflow puede ser una forma útil de verificar el uso excesivo de archivos pequeños de los que puede no estar al tanto. Aquí está de nuevo:

#!/bin/bash
# count_em - count files in all subdirectories under current directory.
echo 'echo $(ls -a "$1" | wc -l) $1' >/tmp/count_em_$$
chmod 700 /tmp/count_em_$$
find . -mount -type d -print0 | xargs -0 -n1 /tmp/count_em_$$ | sort -n
rm -f /tmp/count_em_$$

Coloque este script en el archivo de texto ~ / bin / count_em y luego emita el comando

chmod +x ~/bin/count_em

para hacerlo ejecutable. Si tuvo que crear el directorio ~ / bin, aún no estará en la ruta ejecutable, así que simplemente cierre la sesión y vuelva a iniciarla.

Para ejecutar el programa solo tienes que escribir

count_em

y enumerará los números de todos los archivos en el directorio actual y subdirectorios por directorio, con el recuento más alto al final. ¡Muy útil!

fabricante4
fuente
ESTA LÍNEA> chmode + x ~ / bin / count_em es en realidad> chmod + x ~ / bin / count_em
1
¿es necesario eliminar todos esos archivos creados por el usuario, o moverlos al archivo tar funcionará?
amc
Archivarlos es una excelente manera de lidiar con ellos, no elimina los datos de los usuarios, pero les hace saber que su comportamiento no es satisfactorio, ya que no podrán usar los archivos como lo hicieron anteriormente. Sin embargo, es probable que la gran cantidad de archivos sea generada por algo que nadie está usando y podrían eliminarse de manera segura, pero eso es un riesgo.
LovesTha
Una buena alternativa de una sola línea a su guión podría sersudo du -a -d 1 --inodes . | sort -nr | head -20
Charles Green el
1
Por supuesto, esto no funciona si está completamente sin inodos ya que crea archivos temporales :(
Molomby
8

También puede mostrar una lista ordenada de directorios por número de inodos, utilizando este comando: du --inodes -d 3 / | sort -n | tail

A partir de ahí, puede determinar qué directorios eliminar

johnL
fuente
1
unrecognized option '--inodes'en Ubuntu 14.04, para tu información
Molomby
¿Por qué estás usando ubundu 14.04 en 2019? Veo que tiene coreutils 8.21 de febrero de 2013, la --inodesopción se agregó en julio de 2013 lmao
ZN13
2

Descubrí que el uso del inodo provenía de /root/.local y eliminé esa carpeta.

xaav
fuente
2
No se debe usar mucho /root/.local y solo está allí por razones de compatibilidad. Debe averiguar qué estaba escribiendo muchos archivos pequeños en este directorio.
fabricante 4