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 |Tpara incluir cantidades de terabytes. Puede obtener algunos errores en /proc, /sysy / o /devya 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 /varfuera 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
grepque 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 -xindicador a su ducomando. 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 ducomando para que el valor más alto esté en la parte inferior. Solo agregue esto al final del comando:| sort -h