lsblk +ファイルシステムなしでディスクをキャプチャする方法

lsblk +ファイルシステムなしでディスクをキャプチャする方法

愛する友人と大学

私たちはrhelバージョン7.5サーバーを持っており、各サーバーにはファイルシステムがあるディスクとファイルシステムがないディスクが含まれています。

通常sda- オペレーティングシステムのディスクであり、sdbすでにファイルシステムがあるディスクです。

次のlsblk構文を使用すると、ファイルシステムタイプでディスクリストをキャプチャできます。

lsblk --fs  -o NAME,FSTYPE
NAME             FSTYPE
sda
├─sda1           xfs
└─sda2           LVM2_member
  ├─VG-LV_root xfs
  ├─VG-LV_swap swap
  └─VG-LV_var  xfs
sdb              ext4
sdc  
sdd

ファイルシステムがないすべてのディスクを一致させる方法を知りたいです。

期待される出力

sdc
sdd

だから私たちは次の構文を試しています

lsblk --fs  -o NAME,FSTYPE |  awk '$2 == "" {print $1}'

しかし、我々は次のような結果を得る

sda
sdc
sdd

だから私たちはファイルシステム(XFS)を持っていますsdasda

それでは、real disksそれだけをキャプチャする方法は何ですか?ファイルシステムなし-sdc / sdd

答え1

出力フォーマットをlsblkサポートし、それをインストールした場合(a)サブデバイスがなく(つまり分割されていない)、(b)定義されたファイルシステム自体がない次のブロックデバイスを解析できます。--jsonjq

lsblk --fs --json |
  jq -r '.blockdevices[] | select(.children == null and .fstype == null) | .name'

関連情報