私のコンピューターには 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
バイトを「人間が読める」形式に変換するために使用します。