GNU/Linux >> Tutoriales Linux >  >> Linux

df en linux no muestra el espacio libre correcto después de la eliminación del archivo

Solución 1:

Eliminar el nombre del archivo en realidad no elimina el archivo. Algún otro proceso mantiene abierto el archivo, lo que hace que no se elimine; reinicie o elimine ese proceso para liberar el archivo.

Usar

lsof +L1

para averiguar qué proceso está utilizando un archivo eliminado (desvinculado).

Solución 2:

como menciona Ignacio, eliminar el archivo no liberará el espacio hasta que elimine los procesos que tienen identificadores abiertos contra ese archivo.

Sin embargo, puede recuperar el espacio sin matar los procesos. Todo lo que necesita hacer es eliminar los descriptores de archivo.

Primero ejecute lsof | grep eliminado para identificar el proceso que contiene el archivo

[[email protected] log]$ /usr/sbin/lsof |grep deleted
java       8859   hudson    1w      REG              253,0 3662503356    7578206 /crucible/data/current/var/log/fisheye.out (deleted)

Luego ejecuta:

cd /proc/PID/fd

entonces

[[email protected] fd]$ ls -l |grep deleted
total 0
l-wx------ 1 hudson devel 64 Feb  7 11:48 1 -> /crucible/data/current/var/log/fisheye.out (deleted)

El "1" será el descriptor del archivo. Ahora escriba "> FD" para recuperar ese espacio

> 1

Es posible que deba repetir la operación si hay otros procesos que contienen el archivo.

Solución 3:

Una posibilidad es que los archivos que eliminó tengan más referencias en el sistema de archivos. Si ha creado enlaces fijos, varios nombres de archivo apuntarán a los mismos datos, y los datos (los contenidos reales) no se marcarán como gratuitos/utilizables hasta que se eliminen todas las referencias a ellos. Antes de eliminar archivos, escríbalos (Entrada llamada Enlaces) o haga ls -l en ellos (debe ser la segunda columna).

Si resulta que se hace referencia a los archivos en otro lugar, supongo que tendrá que usar ls -i en los archivos para encontrar el número de inodo, y luego hacer una búsqueda con -inum para encontrar el otras referencias a ese archivo (probablemente también desee usar -mount para permanecer dentro del mismo sistema de archivos).

Solución 4:

Si la partición se configuró para reservar cierta porción de espacio en disco solo para uso de raíz, df no incluirá este espacio como disponible.

[[email protected]]# df -h
Filesystem            Size  Used Avail Use% Mounted on
...
/dev/optvol           625G  607G     0 100% /opt
...

Incluso después de recuperar el espacio mediante la eliminación de archivos/directorios, el usuario que no sea root no podrá escribir en una partición en particular.

Puede verificar fácilmente si ese es su caso al intentar crear un archivo en un dispositivo como usuario root y no root.

Además, puede verificar la configuración del sistema de archivos ejecutando

tune2fs -l <device> | egrep "Block count|Reserved block count

y calcular el % real por su cuenta.

Para cambiar el porcentaje de disco reservado para uso exclusivo de raíz, ejecute

tune2fs -m <percentage> <device>

Solución 5:

El archivo aún está bloqueado por el proceso de apertura. Para liberar espacio, sigue estos pasos:

  1. Ejecutar sudo lsof | grep deleted y ver qué proceso contiene el archivo. Resultado de ejemplo:

    $ sudo lsof | grep deleted
    COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
    cron     1623 root    5u   REG   0,21        0 395919638 /tmp/tmpfPagTZ4 (deleted)
    
  2. Mata el proceso usando sudo kill -9 {PID} . En el ejemplo anterior, el PID es 1623.

    $ sudo kill -9 1623
    
  3. Ejecute df para comprobar si el espacio ya está liberado. Si aún está lleno, tal vez deba esperar unos segundos y volver a verificar.


Linux
  1. 7 consejos de línea de comandos de Linux para ahorrar espacio en archivos multimedia

  2. Use df para verificar el espacio libre en disco en Linux

  3. Cómo crear o aumentar el espacio de intercambio en Linux

  4. Linux + ¿Cómo ignorar (filtrar) el archivo con espacio?

  5. El dispositivo Linux no muestra el espacio en disco correcto después de un cambio de tamaño

Compruebe el espacio libre en disco en Linux con ncdu

5 comandos de Linux para comprobar el espacio libre en disco

Cómo extender el espacio de intercambio usando el archivo de intercambio en Linux

Cómo verificar el espacio libre en disco en Linux

Comprender su espacio en disco a través del comando 'df' en Linux

Cómo usar Linux para recuperar archivos borrados