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 fstab
para que la ejecución mount /media/question
elija 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.