Linux
LVM + pvs + 如何得到 pvs 結果
我們想編寫取
Pfree
大小但整數而不是浮點數的命令pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg lvm2 a-- 277.97g 111.97g
例如在下面
pvs
我們可以做pvs --units g | awk '{print $NF}' | sed s'/\./ /g' | awk '{print $1}' | tail -1
它給了
111
但在不同的情況下,我們得到兩條或多
PV
條線,然後需要計算總數Pfree
範例 1
pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg lvm2 a-- 149.51g 53.51g /dev/sda3 vg lvm2 a-- 50.00g 2.1g
範例 2
pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg lvm2 a-- 149.51g 520.00m /dev/sda3 vg lvm2 a-- 50.00g 3.51g
所以我們想搜尋可以用 Giga 給出計算結果的 lvm 命令
關於範例 1,我們應該得到
55.6
或者
關於範例 2,我們應該得到
4.2
任何已經做到這一點的 lvm 建議?
如果不是,我會很感激獲得可以提供幫助的awk/sed/perl語法
僅獲得 PV 可用空間
pvs
# pvs -o pv_free --unit=g --no-suffix --no-heading 1.00 0.31
並與
bc
# pvs -o pv_free --unit=g --no-suffix --no-heading | paste -s -d+ - | bc 1.31
或者稍微不雅且相當不必要的 awk 使用(與 Vojtech 的解決方案相比)可以適應您的目的(因為您提到了您對 awk 的渴望):
[root@localhost Documente]# lvs --no-heading --unit=g root cl -wi-ao---- 17,00g swap cl -wi-ao---- 2,00g [root@localhost Documente]# lvs --no-heading --unit=g | awk '{sum+=$4} END {print sum}' 19
但我個人會堅持上面答案的簡單性。