사랑하는 친구와 대학
우리는 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'