Регулярное выражение для вывода дисков с iostat

A2
На сайте с 09.08.2011
Offline
23
713

Добрый вечер. Надеюсь верно выбрал раздел.

Есть скрипт для выборки названия дисков через iostat -d

На данный момент, оно сделано так, что выбираются только физические диски (sda, sdb в данном случае), но у меня есть еще и lvm (dm-0, dm-1, dm-x). Ниже текущее регулярное выражение:

iostat -d | awk '{print $1}' | sed -e '/^\([hsv]d[a-z]\)$/!d'

Пример вывода iostat -d

Linux 2.6.32-358.2.1.el6.x86_64 (serve.com) 	09/18/2013 	_x86_64_	(8 CPU)

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sdb 177.84 17204.42 4193.46 141085614256 34388647882
sda 179.34 17868.06 3487.12 146527785284 28596282594
md3 1706.50 13066.64 500.05 107153568784 4100647832
md2 394.07 2806.05 2956.45 23011112858 24244525632
md0 6.14 23.33 25.75 191342008 211156424
md1 0.02 0.20 0.00 1642322 3000
dm-1 1.28 0.30 7.87 2464984 64571080
dm-2 16.07 21.49 90.79 176234208 744488992
dm-3 1.44 0.34 8.41 2810888 68925992
dm-4 1.04 0.31 6.57 2576080 53865288
dm-5 0.02 0.16 0.00 1298096 0
dm-6 0.02 0.16 0.00 1298096 0
dm-7 1.25 1.56 7.47 12786128 61280888
dm-8 3.06 0.53 17.12 4381550 140404458
dm-9 0.02 0.16 0.00 1314032 0
dm-10 83.48 455.39 164.71 3734485118 1350724600
dm-11 7.95 6.41 51.57 52585856 422862400
dm-12 0.56 0.32 3.55 2610402 29128688
dm-14 1.40 0.56 8.92 4609464 73173320
dm-0 2.09 0.27 14.71 2179066 120591488

Как составить ругулярное выражение, чтоб вытягивались еще и названия lvm (dm-0, dm-1, dm-x)?

Фильмы онлайн (http://www.cinemaplayer.ru)
pupseg
На сайте с 14.05.2010
Offline
347
#1

не очень понятна задача.

у вас есть


[root@host ~]# iostat -d | awk '{print $1}' | sed -e '/^\([hsv]d[a-z]\)$/!d'
sdb
sdc
sda
[root@host ~]#
, который выводит физические диски.

в тоже время

[root@host ~]# iostat -d | awk '{print $1}'
Linux

Device:
sdb
sdc
sda
md1
md0
dm-0
dm-1
dm-2
dm-3
dm-4
выводит все , в том числе и лвм-тома, если вам нужно просто обрезать слова типа Linux, Device и пустые строки, и т д, то все просто, типа того:


[root@host ~]# iostat -d | awk '{print $1}' | grep -v 'Linux' | grep -v 'Device' | grep -v '^$'
sdb
sdc
sda
md1
md0
dm-0
dm-1
dm-2
dm-3
dm-4
[root@host ~]#

и у вас получится вывод всех физических дисков и лвм томов.... это нужно? вам нужно вывести все дисковые сущности?

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
ngsv
На сайте с 12.10.2012
Offline
47
#2


iostat -d | egrep -v '(^$|Device|Linux)' | awk '{print $1}'
iostat -d | egrep -v '(^$|Device|Linux)' | awk '{print $1}' | sort | uniq

P.S. Составьте вывод команды, "как вы хотите", а не "как сейчас есть"... Поможем... =)

SIQWELL (http://siqwell.com/) - Быстро. Качественно. Дорого.
zexis
На сайте с 09.08.2005
Offline
388
#3

ТС, читать документацию по регулярным выражениям пробовали?

Я ее сам регулярно читаю, перед тем как нужно составить выражение.

Потому что там много параметров и они забываются.

Во вторых регулярное выражение нужно обязательно протестировать, что бы быть уверенным, что оно правильно работает.

А это уже работа, которая делается не бесплатно.

DV
На сайте с 01.05.2010
Offline
644
#4

iostat -d | awk '{print $1}' | grep -E 'sd|md|dm'
не проверял…
VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий