У меня есть точка монтирования - пусть будет /media/question
- и два возможных устройства: физический жесткий диск и удаленная папка NFS. Иногда подключаю устройство физически, в других случаях монтирую через NFS.
Есть ли способ указать их обоих в fstab
так что выполнение mount /media/question
желательно выбрать физический том, а когда он недоступен - NFS?
Вы также можете посмотреть udev, если он установлен. Это позволяет выполнять действия при добавлении или удалении устройства; например, когда появляется сетевой интерфейс. Чтобы увидеть это в действии, просмотрите файлы, описывающие доступ к сети, в /etc/udev/rules.d/ (на моем компьютере SuSE они называются 77-network.rules). Вы можете определить действия, когда интерфейс идет вверх / вниз:
# SUBSYSTEM == "net",
ENV {ИНТЕРФЕЙС} == "ppp * | ippp * | isdn * | plip * | lo * | irda * | dummy * | ipsec * | tun * | tap * | bond * | br * | vlan * | modem * | dsl * ", GOTO =" skip_ifup "
SUBSYSTEM == "net", ACTION == "add", RUN + = "/ sbin / ifup $ env {INTERFACE} -o hotplug"
SUBSYSTEM == "net", ACTION == "remove", RUN + = "/ sbin / ifdown% k -o hotplug"
LABEL = "skip_ifup"
(строка «ENV (INTERF ....» используется для игнорирования нестандартных сетевых интерфейсов, при совпадении она переходит к соответствующему оператору LABEL. Строки SUBSYTEM запускаются при совпадении оператора ACTION, т. е. интерфейс ДОБАВЛЕН или УДАЛЕН ”)
Итак, если вы измените ДЕЙСТВИЕ «добавить / удалить» для вызова вашего скрипта, который будет вызывать ifup / ifdown, а затем запускать все, что вы хотите, после этого. .например. вызовите «ifup $ @», затем проверьте IP-адрес интерфейса и смонтируйте соответствующие записи. Если монтирования были перечислены в fstab с опцией «noauto», тогда вам нужно только простое соглашение об именах, чтобы найти запись и выполнить монтирование.
Аналогичным образом сценарий /etc/udev/rules.d/56-idedma.rules охватывает IDE (или диски sata) и запускается при обнаружении дисков. Этот сценарий позволит инициировать локальное монтирование в зависимости от присутствия, используя альтернативный сценарий RUN.
Именование и порядок правил аналогичны тем, которые используются в системе инициализации. Дополнительные примеры и параметры можно найти в файлах справки и правил.
Вам нужно создать сценарий Bash, который проверяет, существует ли физическое устройство, если оно существует, смонтируйте устройство, иначе смонтируйте общий ресурс NFS.
Что-то вроде этого :
if [ -d /media/disk ] ; then {
mount /media/disk ...
}
else{ ...
вы можете поместить этот скрипт в /etc/init.d для запуска при запуске или добавить в cron для проверки каждые 5 минут или другой диапазон времени ...