愛する友人と大学
私たちは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)を持っていますsda
。sda
それでは、real disks
それだけをキャプチャする方法は何ですか?ファイルシステムなし-sdc / sdd
答え1
出力フォーマットをlsblk
サポートし、それをインストールした場合(a)サブデバイスがなく(つまり分割されていない)、(b)定義されたファイルシステム自体がない次のブロックデバイスを解析できます。--json
jq
lsblk --fs --json |
jq -r '.blockdevices[] | select(.children == null and .fstype == null) | .name'