Belirli bir harici diskin bağlı olup olmadığını kontrol edin


9

Belirli bir harici diskin bağlı olup olmadığını kabuk komutu ile nasıl kontrol edebilirim? (etikete veya cihaz kimliğine göre)

Yanıtlar:


9

Belirli bir aygıt kullanabilirsiniz bağlı olup olmadığını test etmek grepile -qçıkış aramak için seçenek lsusbya lsblk, mesela

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

veya if:

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

Her ikisi de cihazın takılı olup olmadığına bakılmaksızın kullanılabilir.


Monte edilmiş bölmeler için - lsblk -f | grep f9035fce-b3a1-4aee-80ef-44e432b78fdb | grep / -q && echo yes || echo no.
N0rbert

Tabii ki, sağladığınız UUID kullandım :)
N0rbert

9

/dev/disk/, gerçek cihazlara sembolik bağlantı içeren aşağıdaki dizinleri içerir. Bu bağlantılar dinamik olarak oluşturulur ve tarafından kaldırılır udev, bu nedenle her zaman günceldirler:

  • by-id
  • yan partlabel
  • yan partuuid
  • by-yolu
  • yan Uuid

Dolayısıyla, sembolik bağlantının varlığını kontrol etmek daha az kaynak kullanır.

Seri numarasını kullanarak bir diskin varlığını test eden bir örnek:

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

Yedek komut dosyamda disk varlığını bile kontrol etmiyorum, sadece mountkomutun sonucunu şu şekilde kontrol ediyorum :

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

2

lsusb harici diskiniz USB arabirimi üzerinden bağlıysa bağlı usb cihazını listelemek için.

lsblk -f harici diskiniz bir blok cihaz olduğu için blok cihazları, UUID'leri ve bağlantı noktalarını listelemek için.


1
@ N0rbert Bağlanma noktalarını neden -flistelemeniz gerekiyor ? Varsayılan çıktı yine de bunları listeler
muru

0

findfsbunun için yapılır. Şuna göre arama yapabilirsiniz:

  • FS etiketi

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

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

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

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

Aramalar büyük / küçük harfe duyarlıdır. Birden çok bölüm eşleşirse, yalnızca son bölüm görüntülenir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.