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)을 가지고 있습니다 sda.sda

그렇다면 real disks그 것만 캡처하는 방법은 무엇입니까?파일 시스템 없음-sdc / sdd

답변1

출력 형식을 lsblk지원 하고 이를 설치한 경우 (a) 하위 장치가 없고(즉, 분할되지 않음) (b) 정의된 파일 시스템 자체가 없는 다음 블록 장치를 구문 분석할 수 있습니다.--jsonjq

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

관련 정보