2

Мне нужно узнать размер изображения LVM vm001 . Допустим, у меня есть том LVM, который называется /dev/VGgroup/vm001 . Теперь с помощью 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

Как узнать размер LV, используя скрипт / команду, которая выдаст всего 25? Я знаю, с помощью awk вы можете найти строки по горизонтали, но не по вертикали (насколько я знаю).

Изменить Есть больше логических томов, используя lvdisplay | awk '/LV Size/ { print $3 }' выведет все размеры (очевидно), как мне получить только размер тома, который я хочу? (в этом случае vm001).

4 ответа4

4

С

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

Вы получите размер своего LV в полезной форме.

2

Вы можете установить переменную (found) в awk и выйти сразу после распечатки LV Size .

$ lvdisplay | awk '/vm001/{found=1}; /LV Size/ && found{print $3; exit}'
25.00
  • если vm001, тогда установите для found значение 1 (поскольку мы знаем, что LV Size следует за этой строкой)
  • если LV Size и found!=0, затем выведите столбец № 3 и немедленно exit .
1

Вы можете использовать регулярное выражение для выбора строк, используя префикс «//» для блока. Например, на ваш вывод lvdisplay.

awk '/LV Size/ { print $3 }'
0

Вы также можете напрямую запросить у lvs информацию:

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

или, более конкретно,

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .