GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo verificar si un volumen está montado donde se supone que debe estar usando Python?

Solución 1:

Echaría un vistazo a os.path.ismount() .

Solución 2:

Para obtener una respuesta definitiva a algo que solo el kernel sabe con certeza, pregúntele al kernel:

cat /proc/mounts

Ese archivo se puede leer/analizar como si fuera un archivo normal, utilizando las herramientas que desee. Incluyendo Pitón. Ejemplo rápido y sucio:

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

Solución 3:

La forma más fácil de verificar es invocar mount vía subprocess y ver si aparece allí. Para obtener crédito adicional, use os.readlink() sobre el contenido de /dev/disk/by-* para averiguar qué dispositivo es.

Solución 4:

Respuesta de bonificación. Si el dispositivo externo no está montado, los datos se escriben en la partición raíz en la ruta /external-backup . Si el dispositivo externo está montado, los datos en la partición raíz todavía están allí, pero no se puede acceder a ellos porque /external-backup ahora apunta a un dispositivo externo.

Solución 5:

Pregunta anterior, pero pensé que contribuiría con mi solución (basada en la respuesta de Dennis Williamson e Ignacio Vázquez-Abrams) de todos modos. Dado que lo estoy usando en un entorno que no es Linux para comprobar que se están montando directorios remotos, /proc y mtab no se puede utilizar y no se han implementado comprobaciones adicionales:

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

¡Bienvenidas las mejoras!


Linux
  1. ¿Cómo verificar si un directorio en particular está montado?

  2. ¿Cómo verificar si una partición está montada como 'noexec'?

  3. Cómo verificar si SELinux está habilitado o deshabilitado

  4. Cómo rastrear scripts de Python usando trace.py

  5. ¿Cómo verificar si un proceso todavía se está ejecutando usando Python en Linux?

Cómo comprobar la versión de Python en Linux, Mac y Windows

Cómo comprobar la versión de Python

Cómo crear un depósito S3 usando Python Boto3 en AWS

Cómo administrar paquetes de Python usando PIP

Cómo cambiar el tamaño de las imágenes usando Python

¿Cómo verifico si estoy usando KDE o Gnome?