Bash

如何在 bash 腳本中獲取有關 LVM 對象的各種資訊?

  • September 8, 2022

我想自動化一些維護操作,並且我需要能夠在我的腳本中請求有關 LVM 對象的一些詳細資訊。

特別是,我需要能夠請求至少以字節為單位的 PE 大小以及在特定 PV 上可用的空閒 PE 數量。

有一些進展,例如pvdisplay --units b --nosuffix以字節顯示數據並且沒有垃圾。

但是,我希望不需要我過多地解析這個輸出(使用 grep/awk/等),並且我可以製作pvdisplay和其他 LVM 實用程序來準確輸出我需要的數據。我認為這會更強大。有一個選項-o/--options應該過濾輸出,根據man pvdisplay. 手冊頁還說,-o可以通過執行 with 來獲得可用於 with 的欄位列表-o help。然而,-o help任何其他-o總是輸出的東西:

 Incompatible options selected
 Run `pvdisplay --help' for more information.

就這樣。Fedora bugzilla 中甚至還有一個錯誤,由於報告的版本的 EOL 而關閉而沒有解決方案。

是否可以僅輸出某些資訊,還是應該求助於解析標準 LVM 輸出?

{pv,lv,vg}display --options參數似乎只能與--columns, 等同於簡寫pvs, vgs,lvs命令一起使用。

PE 大小(以字節為單位)

# vgs -o vg_extent_size --units b VGNAME

有多少免費 PE 可用

# pvs -o pv_pe_count,pv_pe_alloc_count /dev/PV

或者

# pvs -o pv_free --units b /dev/PV

如果您不想直接指定 VG/PV,請添加name到選項中。

還有其他可能有助於解析的選項,例如--noheadings, --nosuffix, --separator=:, --rows,--quiet--reportformat=json. 另一種選擇是解析pvdisplay --colon.

引用自:https://unix.stackexchange.com/questions/716643