`Montagem` condicional no Linux: dev ou nfs

`Montagem` condicional no Linux: dev ou nfs

Eu tenho um ponto de montagem - deixe estar /media/question- e dois dispositivos possíveis: um HDD físico e uma pasta NFS remota. Às vezes eu conecto o dispositivo fisicamente, em outros casos eu monto via NFS.

Existe uma maneira de especificar ambos de fstabforma que a execução mount /media/questionescolha preferencialmente o volume físico e quando não estiver disponível - NFS?

Responder1

Você precisa fazer um script Bash que verifique se o dispositivo físico existe, se existir, monte o dispositivo, caso contrário, monte o compartilhamento NFS.

Algo assim :

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

você pode colocar este script em /etc/init.d para execução na inicialização ou pode adicionar ao cron para verificação a cada 5 minutos ou outro intervalo de tempo ...

Responder2

Você também pode consultar o udev se estiver instalado. Isto permite que ações ocorram quando um dispositivo é adicionado ou removido; como quando uma interface de rede é ativada. Para ver isso em ação, procure nos arquivos que cobrem o acesso à rede em /etc/udev/rules.d/ (chamados 77-network.rules na minha caixa SuSE). Você pode definir ações quando uma interface fica ativa/desativada:

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

# SUBSYSTEM=="rede",

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

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

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

LABEL="skip_ifup"

(a linha “ENV(INTERF...” é usada para ignorar interfaces de rede não padrão, se correspondida, salta para a instrução LABEL correspondente. As linhas SUBSYTEM são acionadas quando a instrução ACTION corresponde - ou seja, uma interface é ADDed ou REMOVed ")

Portanto, se você alterar a AÇÃO “adicionar/remover” para chamar seu script, que chamaria ifup/ifdown, execute o que mais quiser depois disso. .por exemplo, chame “ifup $@” e verifique o IP da interface e monte as entradas correspondentes. Se as montagens foram listadas no fstab com a opção “noauto”, então você só precisa de uma simples convenção de nomenclatura para localizar a entrada e emitir uma montagem.

De maneira semelhante, o script /etc/udev/rules.d/56-idedma.rules cobre IDE (ou unidades sata) e seria executado quando as unidades fossem detectadas. Este script permitiria que montagens locais fossem iniciadas com base na presença, usando um script RUN alternativo.

A nomenclatura e a ordem das regras são semelhantes às usadas no sistema init. Dê uma olhada nos arquivos de ajuda e regras para obter mais exemplos e opções.

informação relacionada