`Montaje` condicional en Linux: dev o nfs

`Montaje` condicional en Linux: dev o nfs

Tengo un punto de montaje (déjalo así /media/question) y dos dispositivos posibles: un disco duro físico y una carpeta NFS remota. A veces conecto el dispositivo físicamente, en otros casos lo monto mediante NFS.

¿Hay alguna manera de especificar ambos fstabpara que la ejecución mount /media/questionelija preferentemente el volumen físico y, cuando no esté disponible, NFS?

Respuesta1

Debe crear un script Bash que verifique si el dispositivo físico existe; si existe, monte el dispositivo; de lo contrario, monte el recurso compartido NFS.

Algo como esto :

if [ -d /media/disk ] ; then {
mount /media/disk ...
}
else{ ...

puede colocar este script en /etc/init.d para ejecutarlo al inicio o puede agregarlo al cron para verificarlo cada 5 minutos u otro rango de tiempo...

Respuesta2

También puedes mirar udev si está instalado. Esto permite que se realicen acciones cuando se agrega o elimina un dispositivo; como cuando aparece una interfaz de red. Para ver esto en acción, busque los archivos que cubren el acceso a la red en /etc/udev/rules.d/ (llamados 77-network.rules en mi caja SuSE). Puede definir acciones cuando una interfaz sube o baja:

/etc/udev/rules.d/77-network.rules

# SUBSISTEMA=="neto",

ENV{INTERFACE}=="ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*|bond*|br*|vlan*|módem*|dsl *",GOTO="skip_ifup"

SUBSYSTEM=="net", ACTION=="agregar", RUN+="/sbin/ifup $env{INTERFACE} -o hotplug"

SUBSYSTEM=="net", ACTION=="eliminar", RUN+="/sbin/ifdown %k -o hotplug"

ETIQUETA="skip_ifup"

(La línea “ENV(INTERF....” se utiliza para ignorar interfaces de red no estándar; si coincide, salta a la instrucción LABEL correspondiente. Las líneas SUBSYTEM se activan cuando la instrucción ACTION coincide, es decir, se AGREGA o QUITA una interfaz ”)

Entonces, si cambia la ACCIÓN "agregar/eliminar" para llamar a su secuencia de comandos, que llamaría a ifup/ifdown, luego ejecute cualquier otra cosa que desee después de eso. .por ejemplo, llame a “ifup $@”, luego verifique la IP de la interfaz y monte las entradas correspondientes. Si los montajes estaban listados en fstab con la opción “noauto”, entonces solo necesita una convención de nomenclatura simple para ubicar la entrada y emitir un montaje.

De manera similar, el script /etc/udev/rules.d/56-idedma.rules cubre IDE (o unidades sata) y se ejecutará cuando se detecten las unidades. Este script permitiría iniciar montajes locales según la presencia, utilizando un script RUN alternativo.

La denominación y el orden de las reglas es similar al utilizado en el sistema de inicio. Eche un vistazo a los archivos de ayuda y reglas para obtener más ejemplos y opciones.

información relacionada