GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo liberar el uso de Inode?

Mi solución:

Intente averiguar si se trata de un problema de inodos con:

df -ih

Intente encontrar carpetas raíz con un gran número de inodos:

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

Intenta encontrar carpetas específicas:

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

Si se trata de encabezados de Linux, intente eliminar los más antiguos con:

sudo apt-get autoremove linux-headers-3.13.0-24

Personalmente, los moví a una carpeta montada (porque para mí falló el último comando) e instalé el último con:

sudo apt-get autoremove -f

Esto resolvió mi problema.


Mi situación era que me quedé sin inodos y ya había borrado casi todo lo que pude.

$ df -i
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/sda1      942080 507361     11  100% /

Estoy en un ubuntu 12.04LTS y no pude eliminar los antiguos núcleos de Linux que ocuparon alrededor de 400,000 inodos porque apt se rompió debido a la falta de un paquete. Y no pude instalar el nuevo paquete porque no tenía inodos, así que me quedé atascado.

Terminé eliminando a mano algunos núcleos antiguos de Linux para liberar alrededor de 10 000 inodos

$ sudo rm -rf /usr/src/linux-headers-3.2.0-2*

Esto fue suficiente para permitirme instalar el paquete faltante y arreglar mi apt

$ sudo apt-get install linux-headers-3.2.0-76-generic-pae

y luego elimine el resto de los antiguos núcleos de Linux con apt

$ sudo apt-get autoremove

las cosas están mucho mejor ahora

$ df -i
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/sda1      942080 507361 434719   54% /

Es bastante fácil que un disco tenga una gran cantidad de inodos utilizados incluso si el disco no está muy lleno.

Un inodo se asigna a un archivo, por lo que, si tiene miles de millones de archivos, todos de 1 byte cada uno, se quedará sin inodos mucho antes de quedarse sin disco.

También es posible que la eliminación de archivos no reduzca el recuento de inodos si los archivos tienen varios enlaces físicos. Como dije, los inodos pertenecen al archivo, no la entrada del directorio. Si un archivo tiene dos entradas de directorio vinculadas, eliminar una no liberará el inodo.

Además, puede eliminar una entrada de directorio pero, si un proceso en ejecución todavía tiene el archivo abierto, el inodo no se liberará.

Mi consejo inicial sería eliminar todos los archivos que pueda, luego reiniciar el cuadro para asegurarse de que no queden procesos que mantengan abiertos los archivos.

Si lo hace y todavía tiene un problema, háganoslo saber.

Por cierto, si está buscando los directorios que contienen muchos archivos, este script puede ayudar:

#!/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_$$

Si tiene mucha mala suerte, ha usado aproximadamente el 100% de todos los inodos y no puede crear el scipt. Puede verificar esto con df -ih .

Entonces este comando bash puede ayudarte:

sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n

Y sí, esto llevará tiempo, pero puede ubicar el directorio con la mayoría de los archivos.


Linux
  1. Cómo cambiar el nombre de los archivos en Linux

  2. ¿Cómo encontrar espacio libre en disco y analizar el uso del disco?

  3. Linux:¿cómo asigna Linux números de inodo en sistemas de archivos que no se basan en inodos?

  4. Cómo calcular el uso de memoria en Linux usando sar, ps y gratis

  5. ¿Cómo obtener el% de uso de memoria con vmstat?

Cómo liberar espacio en Ubuntu Linux

¿Cómo interpretar el uso de memoria superior/htop?

¿Cómo disminuir el uso de inodos en CPanel?

¿Cómo verificar el uso de Inode desde cPanel y la línea de comandos?

Cómo encontrar archivos en Debian

Cómo limpiar archivos innecesarios