Como siempre en Linux, hay más de una forma de hacer el trabajo. Sin embargo, si necesita hacerlo desde CLI, este es mi método preferido:
Empiezo ejecutando esto como root o con sudo:
du -cha --max-depth=1 / | grep -E "M|G"
El grep es limitar las líneas de retorno a aquellas que regresan con valores en el rango de Megabyte o Gigabyte. Si sus discos son lo suficientemente grandes, también puede agregarlos |T
para incluir cantidades de terabytes. Puede obtener algunos errores en /proc
, /sys
y / o /dev
ya que no son archivos reales en el disco. Sin embargo, aún debe proporcionar una salida válida para el resto de los directorios en la raíz. Después de encontrar los más grandes, puede ejecutar el comando dentro de ese directorio para reducir su camino hacia el culpable. Entonces, por ejemplo, si /var
fuera el más grande, podría hacerlo así a continuación:
du -cha --max-depth=1 /var | grep -E "M|G"
¡Eso debería llevarlos al problema, niños!
consideraciones adicionales
Si bien el comando anterior ciertamente hará el truco, tuve algunas críticas constructivas en los comentarios a continuación que señalaron algunas cosas que también podría incluir.
- Lo
grep
que proporcioné podría ocasionar que se devuelva el valor ocasional de "K" si el nombre del directorio o archivo tiene una G o una M mayúscula. Si no desea que se muestre ninguno de los directorios con valor de K, le gustaría subir tu juego regex para ser más creativo y complejo. p.ejgrep -E "^[0-9\.]*[MG]"
Si sabe qué unidad es el problema y tiene otras unidades montadas encima que no desea perder el tiempo, incluso en su búsqueda, puede agregar el -x
indicador a su du
comando. Descripción de la página de manual de esa bandera:
-x, --one-file-system
skip directories on different file systems
Puede ordenar la salida del du
comando para que el valor más alto esté en la parte inferior. Solo agregue esto al final del comando:| sort -h