¿Cómo averiguo qué está utilizando todo el espacio en mi / partición?

9

Estoy en una gran instancia en los servidores EC2 de Amazon. Ejecuto el comando df y obtengo:

root@db:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.9G  9.1G  284M  98% /
tmpfs                 3.8G     0  3.8G   0% /lib/init/rw
varrun                3.8G  116K  3.8G   1% /var/run
varlock               3.8G     0  3.8G   0% /var/lock
udev                  3.8G   80K  3.8G   1% /dev
tmpfs                 3.8G     0  3.8G   0% /dev/shm
/dev/sdb              414G  957M  392G   1% /mnt
/dev/sdf               50G   12G   35G  26% /byp
/dev/sdk               99G   31G   63G  33% /backups

Luego ejecuto el comando du y obtengo:

root@db:/# du -s -h /*
31G     /backups
5.5M    /bin
136K    /boot
12G     /byp
80K     /dev
5.8M    /etc
12K     /home
70M     /lib
11M     /lib32
0       /lib64
16K     /lost+found
759M    /mnt
4.0K    /opt
du: cannot access `/proc/6917/task/6917/fd/4': No such file or directory
du: cannot access `/proc/6917/fd/4': No such file or directory
0       /proc
31M     /root
7.7M    /sbin
4.0K    /selinux
4.0K    /srv
0       /sys
11M     /tmp
1.1G    /usr
114M    /var

Si observa, cuando suma todos los tamaños en la salida del comando du de directorios no montados, no se acercará a 9.1G como se ve en el comando df.

¿Esto significa que tengo un disco defectuoso? Si es así, ¿cómo puedo solucionarlo?

fundas
fuente

Respuestas:

20

Es completamente posible que tenga un archivo eliminado muy grande (o muchos pequeños) en el que un proceso todavía tenga un identificador de archivo abierto. La forma de encontrarlos es correr

# lsof | grep "deleted"

Si ve muchas líneas que terminan con "(eliminado)", puede encontrar el Id. De proceso que las tiene abiertas y reiniciarlo. Una vez que eso suceda, su espacio en disco debería volver.

Si esto no lo soluciona, entonces recomendaría un fsck.

David Pashley
fuente
1
¡Increíble! Eso fue todo. Tenía un registro postgresql en el que todavía estaba logueado.
Sheats
Si desea liberar algo de espacio sin reiniciar un demonio, en lugar de eliminar el archivo, use "echo> file" en su lugar. Esto truncará el archivo, pero debido a que el identificador aún está abierto, se convertirá en un archivo disperso. Esto significa que seguirá siendo del mismo tamaño, pero ocupará mucho menos espacio en disco.
David Pashley
lsof +L1a veces puede funcionar mejor que la que grep ...
Derobert
5

Hay muchas razones por las que du no es igual a df. Ver las respuestas a esta pregunta .

Algunos son montajes superpuestos, muchos archivos pequeños y un tamaño de bloque más grande, y archivos eliminados que todavía están en uso. Los montajes de superposición son cuando montaste un sistema de archivos en un punto de montaje que tenía archivos, por lo que no los ves.

La principal diferencia entre los dos es que df solo comprueba el superbloque y confía en él, mientras que du escanea todos los archivos que puede ver y los suma. Consulte este enlace de IBM para obtener información sobre el superbloque.

Kyle Brandt
fuente
4

Siempre use la opción -x con du cuando esté persiguiendo problemas como este. Evita que du cruce los sistemas de archivos.

Zimmy-DUB-Zongy-Zong-DUBBY
fuente
Esto no habría hecho ninguna diferencia, ya que el OP solicitó explícitamente / *, así que solicitó las otras particiones. Hubiera ayudado si algo estuviera montado debajo, por ejemplo, "/ mnt / backups"
David Pashley