Como posso verificar a capacidade total de armazenamento livre restante no meu sistema entre vários discos rígidos?

Como posso verificar a capacidade total de armazenamento livre restante no meu sistema entre vários discos rígidos?

Tenho 15 discos rígidos SATA conectados ao meu computador e ter que examiná-los um por um, anotar o espaço livre e depois resumir tudo não é o ideal.

Existe um comando ou uma combinação de comandos que poderia fazer isso? Idealmente, onde eu poderia passar algo assim, /dev/sd*já que não quero incluir as unidades nvme.

Responder1

EDIT: Eu deveria ler as páginas de manual com mais frequência. É tão simples quanto

df --total -h /dev/sd*

Ok, eu descobri uma coisa

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

O que isso basicamente faz é listar os discos montados e exibir apenas o espaço disponível como saída, depois usar tail para remover a primeira linha que é o título da coluna Availe finalmente somar os números com datamash.

Responder2

Lembre-se do dfcomando para excluir entradas do disco RAM virtual, como /dev, use o -xparâmetro:

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

Outra maneira de fazer isso é com o lsblkcomando

  • -lsaída em formato de lista
  • -npule a linha do cabeçalho
  • -bimprimir em bytes
  • -ogera coluna(s) especificada(s)
  • FSAVAILimprimir tamanho do sistema de arquivos disponível/gratuito
lsblk -l -n -b -o FSAVAIL | grep -v ^$ | \
awk '{sum+=$1} END{print sum}' | numfmt --to=iec

Use greppara excluir linhas vazias, awkpara somar a primeira coluna e, finalmente, numfmtpara converter bytes para o formato "legível por humanos".

informação relacionada