Saltar al contenido
softperu.pe

Limpieza de Inodes en Linux

El inodo (inode) es la estructura interna del sistema de archivos en GNU/Linux que indexa metadatos de archivos y directorios. Aunque aún quede espacio en gigabytes (df -h), si se agotan los inodos (df -i al 100%), el sistema arrojará el error "No space left on device".


🔍 Diagnóstico de Inodes

  1. Verifique el espacio disponible en disco:

    df -h
    

Espacio en disco

  1. Verifique el uso de inodos disponibles:

    df -i
    

Uso de inodes

Si la columna IUse % se encuentra en 100%, continúe con los pasos de limpieza.


🧹 Procedimiento de Limpieza Manual

  1. Ingrese a la raíz del servidor (cd /) y ejecute para ubicar qué directorio almacena más archivos:

    find . -printf "%h\n" | cut -d/ -f-2 | sort | uniq -c | sort -rn
    
  2. Usualmente /var encabeza la lista debido a capas antiguas de Docker (/var/lib/docker/overlay2):

Directorio var saturado Directorio lib saturado Overlay2 de Docker

  1. Revise los contenedores activos:

    docker ps
    

Contenedores activos

  1. Detenga los contenedores de la aplicación y el proxy para poder purgar capas huérfanas:

    # Dentro de la carpeta del facturador:
    docker compose down
    # o docker stop $(docker ps -a -q)
    
    # En el proxy (si aplica):
    cd /root/proxy && docker compose down
    
  2. Reinicie el demonio de Docker:

    systemctl restart docker
    
  3. Ejecute una poda profunda del sistema Docker:

    docker system prune -a --volumes
    

Docker Prune

Confirme con y. Este comando eliminará contenedores detenidos, redes no utilizadas, imágenes huérfanas y caché de compilación sin tocar los volúmenes montados fuera de Docker.

  1. Valide nuevamente con df -i. El porcentaje habrá bajado considerablemente:

Inodes reducidos

  1. Vuelva a levantar el proxy y los contenedores:

    cd /root/proxy && docker compose up -d
    cd /ruta/facturador && docker compose up -d
    

Si proxynet no existe

Si obtiene el error ERROR: Network proxynet not found, cree la red externa manualmente:

docker network create proxynet
docker compose up -d

Verificación de servicios