Búsqueda de sitios web

Cómo analizar el uso del disco en Linux usando ncdu


¿Está teniendo dificultades para auditar la utilización del disco en su sistema Linux? Sé que la mayoría de los administradores de sistemas Linux están acostumbrados a utilizar el comando du para comprobar los archivos que consumen más espacio en el disco o para encontrar el tamaño real del archivo. Siempre ejecuto el siguiente comando para buscar archivos en el directorio especificado y ordenarlos por tamaño, de mayor a menor:

$ find /dir -type f -exec du -Sh {} + | sort -rh

Puedes limitar aún más los resultados de salida canalizándolos a head

$ find  /dir -type f -exec du -Sh {} + | sort -rh | head -n 10

Que solo imprimirá los 10 archivos principales

O usando únicamente el comando du:

$ du -sh /dir/* | sort -hr

En esta guía, le presentaré Ncdu: un analizador de uso de disco con una interfaz ncurses. Ncdu fue diseñado para facilitar la búsqueda de ocupantes de espacio en un servidor remoto donde no se tiene disponible una configuración gráfica completa, pero es una herramienta útil incluso en sistemas de escritorio normales.

Ncdu pretende ser rápido, simple y fácil de usar, y debería poder ejecutarse en cualquier entorno mínimo similar a POSIX con ncurses instalado. De forma predeterminada, mostrará el uso del disco de archivos/directorios ordenados de grande a pequeño:

Instalación de Ncdu en Linux

El paquete Ncdu está disponible en la mayoría de las distribuciones de Linux desde repositorios ascendentes. Veamos cómo instalar el paquete ncdu en CentOS, distribuciones de la familia Debian y Arch Linux.

Instalar Ncdu en Arch Linux

Utilice los comandos:

$ sudo pacman -S ncdu

resolving dependencies...
looking for conflicting packages...

Packages (1) ncdu-2.1-1

Total Installed Size: 0.11 MiB

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring [################] 100%
(1/1) checking package integrity [################] 100%
(1/1) loading package files [################] 100%
(1/1) checking for file conflicts [################] 100%
(1/1) checking available disk space [################] 100%
:: Processing package changes...
(1/1) installing ncdu [################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

Instalar Ncdu en Ubuntu/Debian

En Ubuntu y todas las demás distribuciones de la familia Debian, instale ncdu usando el administrador de paquetes apt.

sudo apt update
sudo apt install ncdu

Instalar Ncdu en CentOS/Fedora

En CentOS y Fedora, el paquete está disponible en el repositorio EPEL. Agréguelo primero y luego instale ncdu usando yum.

sudo yum -y install epel-release
sudo yum install ncdu

Usando Ncdu para auditar el uso del disco

Una vez que el paquete esté instalado en su sistema operativo, simplemente ejecute:

$ncdu /dir/

Ncdu también proporciona una serie de opciones para manipular archivos y carpetas: navegación, clasificación e incluso eliminación:

  • arriba, k – usado para mover el cursor hacia arriba
  • abajo, j – usado para mover el cursor hacia abajo
  • derecha, enter, l > – Abrir el directorio seleccionado
  • izquierda, <,h : esto abre el directorio principal
  • n – ordenar por nombre (presione nuevamente para orden descendente)
  • s – Ordenar por tamaño de archivo (presione nuevamente para orden descendente)
  • d : eliminar el archivo o directorio seleccionado
  • g – Mostrar porcentaje y/o gráfico
  • : cambia los directorios antes de los archivos al ordenar.
  • : alternar la visualización del recuento de elementos secundarios.
  • : genera el shell en el directorio actual.
  • i : muestra información sobre el elemento seleccionado
  • r – Actualizar/recalcular el directorio actual.
  • q – Salir de ncdu

Ejemplo 1: navegar usando >>strong>

Ejemplo 2: mostrar porcentaje y/o gráfico usando g

Ejemplo 2: Eliminar archivo usando d

Ejemplo 3: escanear un sistema de archivos completo

# ncdu -x /

Dado que escanear un directorio grande puede llevar un tiempo, puede escanear un directorio y exportar los resultados para verlos más tarde:

# ncdu -1xo- / | gzip >export.gz
# ...some time later:
# zcat export.gz | ncdu -f-

También puede exportar un directorio y explorarlo una vez finalizado el escaneo:

# ncdu -o- | tee export.file | ./ncdu -f-

Lo mismo es posible con la compresión gzip, pero es un poco complicado:

# ncdu -o- | gzip | tee export.gz | gunzip | ./ncdu -f-

Para escanear un sistema de forma remota, pero explorar los archivos localmente:

# ssh -C user@system ncdu -o- / | ./ncdu -f-

Opciones de escaneo Ncdu

Estas opciones afectan el progreso del escaneo y no tienen ningún efecto al importar información de directorio desde un archivo.

-x
No cruce los límites del sistema de archivos, es decir, solo cuente archivos y directorios en el mismo sistema de archivos que el directorio que se está escaneando.

–excluir PATRÓN
Excluir archivos que coincidan con PATRÓN. Los archivos seguirán apareciendo de forma predeterminada, pero no se cuentan en las estadísticas de uso del disco. Este argumento se puede agregar varias veces para agregar más patrones.

-X FILE, –exclude-from FILE
Excluir archivos que coincidan con cualquier patrón en FILE. Los patrones deben estar separados por una nueva línea.

–exclude-caches
Excluir directorios que contengan CACHEDIR.TAG. Los directorios seguirán apareciendo, pero no su contenido, y no se cuentan en las estadísticas de uso del disco. Ver http://www.brynosaurus.com/cachedir/

Conclusión

Esta herramienta le ahorrará mucho tiempo cuando trabaje en la auditoría del uso del disco tanto para servidores remotos como para sistemas de escritorio locales. ¡Disfruta usando Ncdu!