GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa memeriksa apakah volume dipasang di tempat yang seharusnya menggunakan Python?

Solusi 1:

Saya akan melihat os.path.ismount() .

Solusi 2:

Untuk jawaban pasti atas sesuatu yang hanya diketahui oleh kernel, tanyakan pada kernel:

cat /proc/mounts

File itu dapat dibaca / diurai seperti file biasa, menggunakan alat apa pun yang Anda suka. Termasuk Piton. Contoh cepat-n-kotor:

#!/usr/bin/python

d = {}

for l in file('/proc/mounts'):
    if l[0] == '/':
        l = l.split()
        d[l[0]] = l[1]

import pprint

pprint.pprint(d)

Solusi 3:

Cara termudah untuk memeriksanya adalah dengan mengaktifkan mount melalui subprocess dan lihat apakah itu muncul di sana. Untuk kredit ekstra, gunakan os.readlink() pada konten /dev/disk/by-* untuk mencari tahu perangkat apa itu.

Solusi 4:

Jawaban bonus. Jika perangkat eksternal tidak terpasang, data ditulis ke partisi root di jalur /external-backup . Jika perangkat eksternal dipasang data pada partisi root masih ada tetapi tidak dapat dijangkau karena /external-backup sekarang mengarah ke perangkat eksternal.

Solusi 5:

Pertanyaan lama, tapi saya pikir saya akan menyumbangkan solusi saya (berdasarkan jawaban Dennis Williamson dan Ignacio Vazquez-Abrams). Karena saya menggunakannya di lingkungan non-Linux untuk memeriksa direktori jarak jauh yang sedang dipasang, /proc dan mtab tidak dapat digunakan dan tidak ada pemeriksaan tambahan yang diterapkan:

def is_mounted(special, directory):
    search_prefix = '{} on {}'.format(special, directory.rstrip('/'))

    if os.path.ismount(directory):
        mounts = subprocess.check_output(['mount']).split('\n')

        for line in mounts:
            if line[:len(search_prefix)] == search_prefix:
                return True;

    return False

Peningkatan disambut baik!


Linux
  1. Cara membuat volume fisik di Linux menggunakan LVM

  2. Bagaimana Cara Memeriksa Apakah Sebuah Partisi Dipasang Sebagai 'noexec'?

  3. Cara Melacak Skrip Python menggunakan trace.py

  1. Bagaimana cara memeriksa apakah suatu proses masih berjalan menggunakan Python di Linux?

  2. Bagaimana saya bisa memeriksa apakah ada direktori?

  3. Bagaimana saya bisa tahu jika partisi sudah terpasang atau dilepas?

  1. Bagaimana Menguji Shell Apa yang Saya Gunakan Di Terminal?

  2. Bagaimana Cara Memeriksa Apakah Direktori Tertentu Dipasang??

  3. Bagaimana Cara Memeriksa Apakah Bash Dapat Mencetak Warna?