GNU/Linux >> Linux の 問題 >  >> Linux

Python を使用しているはずの場所にボリュームがマウントされているかどうかを確認するにはどうすればよいですか?

解決策 1:

os.path.ismount() を見てみましょう .

解決策 2:

カーネルだけが確実に知っていることに対する決定的な答えについては、カーネルに尋ねてください:

cat /proc/mounts

そのファイルは、好きなツールを使用して、通常のファイルであるかのように読み取り/解析できます。パイソンを含む。簡単な例:

#!/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)

解決策 3:

チェックする最も簡単な方法は、 mount を呼び出すことです subprocess経由 そこに表示されるかどうかを確認します。クレジットを追加するには、os.readlink() を使用します /dev/disk/by-* の内容について

解決策 4:

ボーナス回答。外部デバイスがマウントされていない場合、データはパス /external-backup のルート パーティションに書き込まれます .外部デバイスがマウントされている場合、ルート パーティションのデータはまだそこにありますが、/external-backup のため到達できません。 は現在、外部デバイスを指しています。

解決策 5:

古い質問ですが、とにかく(デニス・ウィリアムソンとイグナシオ・バスケス・エイブラムスの答えに基づいて)私の解決策を提供すると思いました。 Linux 以外の環境でリモート ディレクトリがマウントされていることを確認するために使用しているため、/proc および mtab は使用できず、追加のチェックは実装されていません:

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

改善を歓迎します!


Linux
  1. Bashが色を印刷できるかどうかを確認する方法は?

  2. LinuxでPythonを使用してプロセスがまだ実行されているかどうかを確認するには?

  3. 自分が画面にいるかどうかを確認するにはどうすればよいですか?

  1. LVMを使用してLinuxで物理ボリュームを作成する方法

  2. ターミナルで使用しているシェルをテストする方法は?

  3. ディレクトリを grep -R から除外するにはどうすればよいですか?

  1. 特定のディレクトリがマウントされているかどうかを確認する方法は??

  2. パーティションが「noexec」としてマウントされているかどうかを確認するにはどうすればよいですか?

  3. SELinux が有効か無効かを確認する方法