Назад | Перейти на главную страницу

Как показать определенные LUN ​​из команды lsscsi?

Мне нужен конкретный grep luns из lsscsi команда.

Например:

[root@e15l1 ~]# lsscsi 4 0 1 | awk '{print $1,$6}' | head
[4:0:1:0] -
[4:0:1:1] /dev/sdab
[4:0:1:2] /dev/sdj
[4:0:1:3] /dev/sdz
[4:0:1:4] /dev/sdk
[4:0:1:12] /dev/sdo
[4:0:1:13] /dev/sdp
[4:0:1:38] /dev/sdad

Как я могу только grep luns 1, 12 и 13?

Я использую:lsscsi | awk '{ print $1,$6 }' | grep -w 4:0:1 | egrep -w '1|1[2-3]'

Проблема в том, что я ищу lun с тем же номером, что и другие scsi записи. Например, в моем случае поиск lun 1 выдаст весь результат, потому что мой ID тоже 1. То же самое с lun 4 (из-за Host adapter) ...

Вывод должен быть таким, как в примере, scsi записи и /dev/...

Попробуй это:

lsscsi 4 0 1 | sed -r '/\[4:0:1:(1|12|13)\].*/!d'

Результат будет:

[4:0:1:1] /dev/sdab
[4:0:1:12] /dev/sdo
[4:0:1:13] /dev/sdp

Это должно работать независимо от других чисел в строке:

egrep '^\[\d+:\d+:\d+:(1|12|13)\]'

Может также потребоваться обратная косая черта с двоеточиями, а не в банкомате компьютера для проверки.

Для этого замените диапазон (1 | 2 | 13) на, например, (2 [0-8])