web-dev-qa-db-ja.com

AWKを使用してLVMサイズを取得しますか?

画像vm001のLVMサイズを調べる必要があります。 /dev/VGgroup/vm001というLVMボリュームがあるとしましょう。 lvdisplayを使用して、サイズを確認できます。

--- Logical volume ---
  LV Name                /dev/VGgroup/vm001
  VG Name                VGgroup
  LV UUID                i0aYKs-Hpfv-q64V-9Rqu-6Wrq-eV3C-pZzo0D
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                25.00 GB
  Current LE             6400
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:41

25だけを出力するスクリプト/コマンドを使用してLVサイズを確認するにはどうすればよいですか? awkを使用すると、文字列を水平方向に見つけることができますが、垂直方向には見つけることができません(私が知る限り)。

編集論理ボリュームがもっとあります。lvdisplay | awk '/LV Size/ { print $3 }'を使用すると(明らかに)すべてのサイズが出力されますが、必要なボリュームのサイズのみを取得するにはどうすればよいですか? (この場合はvm001)。

2
Devator

foundに変数(awk)を設定し、LV Sizeを出力した直後に終了することができます。

$ lvdisplay | awk '/vm001/{found=1}; /LV Size/ && found{print $3; exit}'
25.00
  • vm001が見つかった場合は、found1に設定します(わかっているため- LV Sizeこの行をフォローしています)
  • LV Sizeおよびfound!=0の場合、列#3を出力し、exitをすぐに出力します。
2
kev

lvs /dev/vg/lvname -o LV_SIZE --noheadings --units G --nosuffix

lVのサイズを便利な形で取得できます。

3
glglgl

正規表現を使用して、ブロックに「//」プレフィックスを使用して行を選択できます。たとえば、lvdisplay出力で。

awk '/LV Size/ { print $3 }'
1
Anil

lvsに直接情報を求めることもできます。

lvs vm001 --nosuffix --units g -o size --no-headings

より具体的には、

lvs VGgroup/vm001 --nosuffix --units g -o size --no-headings
0
GargantuChet