GNU/Linux >> Tutoriales Linux >  >> Linux

El sistema de archivos de Linux se está llenando, a pesar de que no hay archivos o directorios grandes

El problema

En un sistema basado en Linux, el sistema de archivos raíz se está llenando por algún proceso desconocido. Continúa independientemente de qué archivos se muevan o limpien del sistema de archivos.

# df -hP /
/dev/mapper/VGExaDb-LVDbSys1    ext3     30G   29G     0 100%    /

No hay archivos grandes para dar cuenta del sistema de archivos completo:

# find / -xdev -type f -size +100M -exec ls -lh {} \;

No hay directorios grandes para dar cuenta del sistema de archivos completo:

# du -h --max-depth=1 /
42M     /sbin
13M     /etc
2.4G    /usr
45M    /tmp
451M   /var
192M   /lib
(and so on)
...

La solución

En un momento del pasado, dos o más procesos usaban un archivo; por ejemplo,/tmp/top.log. Un proceso detuvo su acceso a /tmp/top.log eliminándolo (en realidad es una entrada de directorio) y el otro proceso continuó escribiendo en la referencia del inodo, lo que permitió que el archivo siguiera creciendo.

Esto se puede ver en la salida de:“lsof +L 1

# lsof +L 1
COMMAND    PID      USER   FD     TYPE   DEVICE     SIZE/OFF      NLINK          NODE       NAME
top        34261    root   1W     REG   252,0       21460567592   0              1785896    /tmp/top.log (deleted)

También se enumeraron otros archivos, pero eran mucho más pequeños.

Esto muestra que user=root estaba ejecutando un comando superior que se estaba almacenando en /tmp/top.log, y que actualmente no hay enlaces a ese archivo. Ese archivo de spool tenía un tamaño de 21 Gb, pero no se informó en la salida "du –h –max- depth=1 /", donde /tmp aparece como solo 45M.

Siga los pasos a continuación para identificar y eliminar dicho proceso.

1. Identifique los archivos en el sistema que tienen menos de 1 enlace con el comando:

# lsof +L 1

2. Elimine cualquier proceso que esté escribiendo en cualquier archivo inusualmente grande de la lista. En el ejemplo anterior, ejecutaría:

# kill 34261

3. Se liberará espacio cuando el proceso final deje de usar el archivo.


Linux
  1. Encuentra archivos y directorios en Linux con el comando de búsqueda

  2. Mover archivos en Linux sin mv

  3. Una manera fácil de ocultar archivos y directorios en Linux

  4. Cómo encontrar un archivo en Linux en todos los directorios recursivamente

  5. ¿Encontrar todos los archivos de Python en el sistema de archivos de Linux?

Cómo dividir archivos de audio grandes en Linux

Cómo montar un sistema de archivos Linux remoto usando SSHFS

Cómo cambiar el nombre de archivos y directorios en Linux

Cómo copiar archivos y directorios en la terminal de Linux

Cómo crear archivos zip o directorios protegidos con contraseña en Linux

Cómo crear un archivo grande de 1 GB o 10 GB en el sistema Linux