如何檢查系統上多個硬碟的剩餘可用儲存容量?

如何檢查系統上多個硬碟的剩餘可用儲存容量?

我的電腦上連接了 15 個 SATA 硬碟,必須一一檢查它們,記下可用空間,然後總結所有內容,這並不理想。

是否有一個命令或命令組合可以做到這一點?理想情況下,我可以傳遞類似的內容,/dev/sd*因為我不想包含 nvme 驅動器。

答案1

編輯:我應該更頻繁地閱讀手冊頁。這很簡單

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將位元組轉換為“人類可讀”格式。

相關內容