複数の HDD 間でシステムに残っている合計空きストレージ容量を確認するにはどうすればよいですか?

複数の HDD 間でシステムに残っている合計空きストレージ容量を確認するにはどうすればよいですか?

私のコンピューターには 15 台の SATA ハード ドライブが接続されており、それらを 1 台ずつ確認して空き容量を書き留め、すべてを合計するのは理想的ではありません。

それを実行できるコマンドまたはコマンドの組み合わせはありますか? 理想的には、/dev/sd*nvme ドライブを含めたくないので、次のようなものを渡すことができます。

答え1

編集:もっと頻繁にmanページを読むべきです。それは次のように簡単です

df --total -h /dev/sd*

わかった、何かわかった

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

これは基本的に、マウントされたディスクを一覧表示し、使用可能なスペースのみを出力として表示し、次に tail を使用して列タイトルである最初の行を削除しAvail、最後に datamash を使用して数値を合計します。

答え2

dfなどの仮想 RAM ディスク エントリを除外するには/dev、コマンドで次のパラメータを使用することに注意してください-x

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

これを行う別の方法は、lsblkコマンドを使用する方法です

  • -lリスト形式で出力
  • -nヘッダー行をスキップする
  • -bバイト単位で印刷
  • -o指定された列を出力する
  • FSAVAIL使用可能な/空きのファイルシステムのサイズを印刷する
lsblk -l -n -b -o FSAVAIL | grep -v ^$ | \
awk '{sum+=$1} END{print sum}' | numfmt --to=iec

grep空行を除外し、awk最初の列を合計し、最後にnumfmtバイトを「人間が読める」形式に変換するために使用します。

関連情報