¿Cómo puedo comprobar la capacidad total de almacenamiento libre que queda en mi sistema entre varios discos duros?

¿Cómo puedo comprobar la capacidad total de almacenamiento libre que queda en mi sistema entre varios discos duros?

Tengo 15 discos duros SATA conectados a mi computadora y tener que revisarlos uno por uno, anotar el espacio libre y luego resumir todo no es lo ideal.

¿Existe un comando o una combinación de comandos que pueda hacer eso? Idealmente, podría pasar algo así /dev/sd*ya que no quiero incluir las unidades nvme.

Respuesta1

EDITAR: Debería leer las páginas de manual con más frecuencia. Es tan simple como

df --total -h /dev/sd*

Está bien, descubrí algo

df --output=avail  /dev/sd* | tail -n +2 | datamash sum 1

Básicamente, lo que esto hace es enumerar los discos montados y mostrar solo el espacio disponible como salida, luego usar tail para eliminar la primera línea que es el título de la columna Availy finalmente sumar los números con datamash.

Respuesta2

Tenga en cuenta que el dfcomando para excluir entradas del disco RAM virtual como /dev, utilice el -xparámetro:

df -x tmpfs -x devtmpfs --total -h

Otra forma de hacerlo es con el lsblkcomando

  • -lsalida en formato de lista
  • -nsaltar la línea del encabezado
  • -bimprimir en bytes
  • -ogenera las columnas especificadas
  • FSAVAILTamaño del sistema de archivos de impresión disponible/gratis.
lsblk -l -n -b -o FSAVAIL | grep -v ^$ | \
awk '{sum+=$1} END{print sum}' | numfmt --to=iec

Úselo greppara excluir líneas vacías, awkpara sumar la primera columna y, finalmente, numfmtpara convertir bytes al formato "legible por humanos".

información relacionada