el disco está lleno, pero no puede encontrar archivos o carpetas grandes

20

El servidor Ubuntu me muestra que uso casi todo el disco:

Usage of /:   95.5% of 118.12GB

Y trato de encontrar grandes carpetas y archivos, ejecuto ncdu:

ncdu 1.8 ~ Use the arrow keys to navigate, press ? for help                                                                                                                                                 
--- / ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    5.5GiB [##########] /root                                                                                                                                                                               
    2.3GiB [####      ] /var
  628.6MiB [#         ] /usr
  209.9MiB [          ] /lib
   28.2MiB [          ] /boot
    8.6MiB [          ] /bin
    7.7MiB [          ] /sbin
    6.6MiB [          ] /etc
  208.0KiB [          ] /run
  112.0KiB [          ] /tmp
   48.0KiB [          ] /opt
e  16.0KiB [          ] /lost+found
    8.0KiB [          ] /dev
    8.0KiB [          ] /media
    4.0KiB [          ] /lib64
e   4.0KiB [          ] /srv
e   4.0KiB [          ] /selinux
e   4.0KiB [          ] /mnt
e   4.0KiB [          ] /home
    0.0  B [          ] /proc
    0.0  B [          ] /sys
@   0.0  B [          ]  initrd.img
@   0.0  B [          ]  vmlinuz

De acuerdo con ncdulo uso alrededor 10 GiBde 128 GiB- se trata 10 %. Contradicción.

¿Cómo limpiar mi ubutntu serversin reiniciar?

Pensé que ncdumentía y usé otras aplicaciones para encontrar archivos y carpetas grandes. Todos ellos muestran el mismo resultado que ncdu.

Y el df -hcomando muestra que el disco está lleno.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda       119G  113G     0 100% /
udev            2.0G  8.0K  2.0G   1% /dev
tmpfs           788M  212K  788M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm

Actualizar

sudo du -sch /* resultado:

/# sudo du -sch /*
8.7M    /bin
29M /boot
8.0K    /dev
6.6M    /etc
4.0K    /home
0   /initrd.img
210M    /lib
4.0K    /lib64
16K /lost+found
8.0K    /media
4.0K    /mnt
48K /opt
du: cannot access `/proc/4470/task/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/task/4470/fdinfo/4': No such file or directory
du: cannot access `/proc/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/fdinfo/4': No such file or directory
0   /proc
5.0G    /root
212K    /run
7.8M    /sbin
4.0K    /selinux
4.0K    /srv
0   /sys
112K    /tmp
629M    /usr
2.3G    /var
0   /vmlinuz
8.1G    total

8.1G Total como siempre. Pero veo cannot accessfilas, tal vez un problema debido a ellas.

Luego revisé la carpeta más grande /. Es /root:

/# sudo du -sch /root/*
96K /root/Downloads
2.5G    /root/Dropbox
36K /root/nohup.out
4.0K    /root/npm-debug.log
4.0K    /root/readonly
980K    /root/redis-2.6.16.tar.gz
228M    /root/tmp
2.7G    total
Maxim Yefremov
fuente
Solo un pensamiento, puede verificar el contenido de / var / log / para ver si algún registro ha crecido de manera expotenial.
Mordoc
/ var / log es de aproximadamente 2 GiB. Está bien
Maxim Yefremov
1
Intente du -sch /*ver qué directorios raíz utilizan más espacio y descienda desde allí a los lugares que utilizan más espacio.
DopeGhoti
@DopeGhoti Lo intenté pero vi lo mismo por 8.1 GiBcompleto (agregué esto para actualizar). No puedo entender de dónde está el resto100 GiB
Maxim Yefremov
2
Sé que no quieres, pero muerde la bala y reinicia.
douggro

Respuestas:

13

Me encontraba con este mismo problema en nuestras máquinas de laboratorio y estaba usando este comando

du -sch .[!.]* * |sort -h

Pude encontrar archivos ocultos como dentro de los contenedores de basura de los usuarios que aún tenían que eliminar.

Crédito a aquí donde originalmente encontré esta respuesta.

Matt G.
fuente
¡Una solución asombrosa!
AivanF.
5

Verifique si hay archivos eliminados que todavía están abiertos por un proceso:
sudo lsof | grep deleted | less

Eso mostrará el pid y el descriptor de archivo. Tuve este problema exacto en un servidor, nada ncdumás que llenar el disco. Resultó ser un proceso nocturno que movió archivos a un recurso compartido de samba montado y, en ocasiones, no cerró el identificador de archivos correctamente, al parecer.

Si encuentra archivos eliminados y desea limpiarlos, un reinicio probablemente sea más fácil si eso es aceptable. O puedes intentar matar el proceso. O si está seguro de que no se están utilizando, puede ponerlos a cero manualmente, con algo como esto:
> /proc/14487/fd/12

Alric
fuente
Este fue mi problema. Tomcat sostenía un archivo eliminado de 80 GB. Un reinicio fue suficiente para solucionarlo.
AFP_555
¿Cómo puedo eliminarlos si el comando "reiniciar" no es suficiente?
brilla
4

El siguiente comando mostrará la utilización del disco para el directorio / home con --max-depth = 1

user@linux:~$ sudo du -h -d 1 /
Kamchybek Jusupov
fuente
2

Asegúrese de verificar los soportes de su disco. Ninguna de las soluciones que he visto aquí puede identificar el espacio que ocupa una carpeta que tiene un soporte colocado encima.

Rich Remer
fuente
¿
Alguna
Básicamente, verifique sus monturas existentes mount, luego agregue una segunda montura para cada uno de los directorios que tienen monturas colocadas sobre ellos. Luego puede usar herramientas de disco normales como duen el montaje recién creado para ver si es el culpable.
Rich Remer el
1

Tuvimos este mismo problema y resultaron ser imágenes acoplables, almacenadas en var / lib / docker

ncdu no los enumera ya que no son visibles para los usuarios. incluso ejecutar ncdu bajo sudo no ayuda.

Este comando purga todas las imágenes acoplables existentes ...

docker rmi $(docker images -a -q)

Baldy
fuente
Mismo problema aquí. De hecho, incluso docker system pruneno estaba encontrando todo. Este comando (que precede a la poda del sistema Docker) hace el truco.
jscharf
1
recientemente hemos descubierto que docker system prune -a -fes mucho más exhaustivo
Baldy
0

Puede ejecutar el siguiente comando para encontrar los 10 archivos más grandes:

find / -type f -printf '%s %p\n' 2>&1 
     | grep -v 'Permission denied' 
     | sort -nr 
     | head -10
ema
fuente