ตรวจสอบว่ามีการเชื่อมต่อดิสก์ภายนอกที่เฉพาะเจาะจงหรือไม่


9

ฉันจะตรวจสอบผ่านคำสั่งเชลล์ได้อย่างไรถ้ามีการเชื่อมต่อดิสก์ภายนอกที่เฉพาะเจาะจง (ตามป้ายกำกับหรือรหัสอุปกรณ์)

คำตอบ:


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ดังนั้นลิงก์เหล่านี้จึงเป็นข้อมูลล่าสุดเสมอ:

  • โดย-ID
  • โดย partlabel
  • โดย partuuid
  • โดยเส้นทาง
  • โดย uuid

ดังนั้นการตรวจสอบการมีอยู่ของ symlink จะใช้ทรัพยากรน้อยลง

นี่คือตัวอย่างการทดสอบการมีดิสก์โดยใช้หมายเลขซีเรียล:

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.