Bash
lsblk + 如何擷取沒有文件系統的磁碟
親愛的朋友和大學
我們有 rhel 7.5 版本的伺服器,每台伺服器都包括帶文件系統的磁碟和不帶文件系統的磁碟
通常
sda
- 是 OS 磁碟,並且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
所以我們
sda
儘管sda
有文件系統(XFS)那麼如何僅擷取
real disks
沒有文件系統的文件-sdc / sdd
如果您
lsblk
支持--json
輸出格式,您可以將其解析為(a)沒有子設備(即未分區)和(b)本身沒有定義的文件系統的塊設備:lsblk --fs --json | jq -r '.blockdevices[] | select(.children == null and .fstype == null) | .name'