Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Búsqueda y limpieza de inodos en Linux

Loading

En sistemas Linux, quedarse sin inodos puede provocar errores graves incluso aunque todavía exista espacio libre en disco. Este problema es habitual en servidores con muchos ficheros pequeños (logs, colas de correo, cachés, sesiones web, etc.).

Este artículo explica qué son los inodos, cómo detectar su agotamiento y cómo localizar y limpiar ficheros de forma segura, paso a paso.

¿Qué es un inodo?

Un inodo es una estructura de datos que almacena la información de un fichero:

  • Propietario
  • Permisos
  • Tamaño
  • Fechas (creación, modificación, acceso)
  • Punteros a los bloques de datos

Cada archivo o directorio consume 1 inodo, independientemente de su tamaño.

Síntomas de agotamiento de inodos

Aunque el disco no esté lleno, puedes encontrar errores como:

  • No space left on device
  • Fallos al crear archivos temporales
  • Servicios que dejan de funcionar (Apache, MySQL, Postfix, etc.)

Comprobar el uso de inodos

Uso global de inodos

df -i

Salida de ejemplo:

Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 6553600 6549000 4600 100% /

Si IUse% está cercano o al 100%, tienes un problema de inodos.

Localizar dónde se consumen los inodos

Buscar directorios con más archivos

sudo du --inodes-d1 /

Esto muestra el número de inodos usados por directorio en la raíz.

Ejemplo:

1200000 /var
30000 /etc
15000 /home

Normalmente, el problema suele estar en /var o /tmp.

Analizar un directorio concreto

Ejemplo con /var:

sudo du --inodes-d1 /var

Continúa bajando niveles hasta encontrar el directorio problemático:

sudo du --inodes-d1 /var/log

Contar número de archivos

find /var/log -type f | wc-l

Esto permite confirmar si hay millones de ficheros pequeños.

Casos habituales de consumo excesivo de inodos

Logs sin rotar

  • /var/log
  • Aplicaciones personalizadas

Cachés

  • /var/cache
  • Cachés de paquetes (apt, yum, dnf)

Directorios temporales

  • /tmp
  • /var/tmp

Aplicaciones web

  • Sesiones PHP
  • Caché de WordPress / frameworks

Limpieza segura de inodos

Advertencia: nunca borres archivos del sistema sin verificar su función.

Limpiar logs antiguos

sudo find /var/log -type f -name"*.log"-mtime +30-delete

O comprimirlos:

sudo logrotate -f /etc/logrotate.conf

Limpiar caché de paquetes

Debian / Ubuntu:

sudo apt clean

RHEL / CentOS / Rocky:

sudo dnf clean all

Limpiar directorios temporales

sudo find /tmp -type f -mtime +7-delete
sudo find /var/tmp -type f -mtime +7-delete

Eliminar archivos vacíos

sudo find /var -type f -empty-delete

Verificación tras la limpieza

df -i

Confirma que el porcentaje de inodos usados ha disminuido.

Prevención del problema

Configurar rotación de logs

Verifica logrotate:

sudo systemctl status logrotate.timer

Monitorización

  • Configurar alertas de inodos en herramientas como:
    • Zabbix
    • Prometheus
    • Nagios

Sistemas de archivos separados

Separar:

  • /var
  • /tmp

Permite aislar problemas de inodos.

Conclusión

El agotamiento de inodos es un problema silencioso pero crítico en Linux. Con una metodología estructurada, es posible:

  • Detectarlo rápidamente
  • Identificar el origen
  • Limpiar de forma segura
  • Prevenir futuras incidencias

Una buena política de logs, caché y monitorización evita este problema en producción.

You may also like...