특정 외부 디스크가 연결되어 있는지 확인


9

특정 외부 디스크가 연결된 경우 쉘 명령을 통해 어떻게 확인할 수 있습니까? (라벨 또는 기기 ID 별)

답변:


9

특정 장치가 사용할 수있는 연결되어 있는지 여부를 테스트하려면 grep-q의 출력 검색 옵션 lsusb또는 lsblk, 예를

uuid=f9035fce-b3a1-4aee-80ef-44e432b78fdb
lsblk -f | grep -wq $uuid && echo yes || echo no

devicename="some Inc. Keyboard"
lsusb | grep -q "$devicename" && echo yes || echo no

또는 함께 if:

uuid=f9035fce-b3a1-4aee-80ef-44e432b78fdb
if lsblk -f | grep -wq $uuid; then
  echo yes
else
  echo no
fi

장치의 장착 여부에 관계없이 둘 다 사용할 수 있습니다.


마운트 된 파티션의 경우- lsblk -f | grep f9035fce-b3a1-4aee-80ef-44e432b78fdb | grep / -q && echo yes || echo no.
N0rbert

물론, 나는 당신이 제공 한 UUID를 사용했습니다 :)
N0rbert

9

/dev/disk/실제 장치에 대한 심볼릭 링크가 포함 된 다음 디렉토리를 포함합니다. 이 링크는에 의해 동적으로 생성 및 제거 udev되므로 항상 최신 상태입니다.

  • by-id
  • 부분 별 레이블
  • 부품 별
  • 경로 별
  • by-uuid

따라서 심볼릭 링크가 있는지 확인하면 더 적은 리소스를 사용하게됩니다.

다음은 일련 번호를 사용하여 디스크가 있는지 테스트하는 예입니다.

test -e /dev/disk/by-id/wwn-0x5002538d408be9e0 && echo yes || echo no

백업 스크립트에서 디스크 유무를 확인하지 않고 mount다음과 같은 명령 결과 만 확인합니다 .

mount -o noatime $DESTINATION_PARTITION $DESTINATION_DIR || exit 1

2

lsusb 외부 디스크가 USB 인터페이스를 통해 연결된 경우 연결된 USB 장치를 나열합니다.

lsblk -f 외부 디스크가 블록 장치이므로 블록 장치, UUID 및 해당 마운트 지점을 나열합니다.


1
@ N0rbert 왜 -f마운트 지점을 나열 해야 합니까? 기본 출력은 어쨌든 나열합니다
muru

0

findfs이를 위해 만들어졌습니다. 다음으로 검색 할 수 있습니다.

  • FS 라벨

    findfs LABEL="Ubuntu" &>/dev/null
    
  • FS UUID

    findfs UUID="f9035fce-b3a1-4aee-80ef-44e432b78fdb" &>/dev/null
    
  • GPT 라벨

    findfs PARTLABEL="EFI system partition" &>/dev/null
    
  • GPT UUID

    findfs PARTUUID="85e66d2f-3709-4060-938e-ffe836433cc9" &>/dev/null
    

검색은 대소 문자를 구분합니다. 여러 파티션이 일치하면 마지막 파티션 만 표시됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.