Obtém o tamanho do LVM usando o AWK?

2

Estou precisando descobrir o tamanho da imagem vm001 do LVM. Digamos que eu tenha um volume LVM chamado /dev/VGgroup/vm001 . Agora, usando lvdisplay , posso descobrir o tamanho:

--- 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

Como posso descobrir o tamanho de LV usando um script / comando que produzirá apenas 25 ? Eu sei que com awk você pode encontrar strings horizontalmente, mas não verticalmente (até onde eu sei).

Editar Existem mais Volumes Lógicos, usando lvdisplay | awk '/LV Size/ { print $3 }' para todos os tamanhos (obviamente), como obtenho apenas o tamanho do volume que quero? (neste caso vm001 ).

    
por Devator 12.03.2012 / 11:21

4 respostas

2

Você pode definir uma variável ( found ) em awk e sair imediatamente após imprimir LV Size .

$ lvdisplay | awk '/vm001/{found=1}; /LV Size/ && found{print $3; exit}'
25.00
  • se vm001 for encontrado, defina found como 1 (porque conhecemos LV Size está seguindo esta linha)
  • se LV Size e found!=0 , imprima a coluna 3 e exit imediatamente.
por 12.03.2012 / 13:34
4

com

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

você obtém o tamanho do seu LV de forma útil.

    
por 12.03.2012 / 14:53
1

Você pode usar o regex para selecionar linhas usando o prefixo '//' para um bloco. Por exemplo, na saída do seu lvdisplay.

awk '/LV Size/ { print $3 }'
    
por 12.03.2012 / 11:28
0

Você também pode solicitar a lvs as informações diretamente:

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

ou mais especificamente,

lvs VGgroup/vm001 --nosuffix --units g -o size --no-headings
    
por 09.08.2018 / 20:28