2

Использование любого из /etc/mtab , /proc/mounts/mounts , mount или mountpoint может дать вам неверную информацию, если произошло одно из следующих:

  • Пульт находится в автономном режиме (решения на основе grep файлов не работают)
  • Для монтирования NFS удаленный сервер прекратил экспорт или служба NFS была остановлена (mountpoint не работает)
  • Пульт ДУ изменил IP-адреса (все решения не работают)

Как я могу получить простой ответ да / нет относительно того, является ли монтирование пригодным для использования по назначению? Насколько я понимаю, вся информация о монтировании хранится как в /etc/mtab и в /proc/mounts mounts . Не вызывая зависания (как у stat ), есть ли способ проверить, что фактическое состояние сети соответствует местной информации, которая заставила бы меня поверить?

Это должен быть очень общий инструмент, способный обрабатывать монтирование CIFS и NFS (и, скорее всего, других).

скованность

Я могу использовать только то, что поставляется со стандартным дистрибутивом на RHEL 6. Обычно все в /bin:/sbin:/usr/bin:/usr/sbin является честной игрой. Это не по выбору и не подвижная точка, поэтому я не могу принять ответ, который использует внешние инструменты. Ради будущих читателей, тем не менее, я приветствую их как комментарии :)

Рекомендации

2 ответа2

3

Боюсь, это невозможно.

Единственный способ узнать, если NFS (или, в более общем случае , любая сеть) устройство может использоваться, чтобы попытаться использовать его , и что может блокировать (и занять некоторое время).

Более того, «непригодность к использованию» не является чем-то постоянным. Если пульт дистанционного управления снова включается, подключение снова становится пригодным для использования.

0

В Ubuntu я создал точки монтирования из root , но они монтируются для другого пользователя, поэтому проверка владельца дает мне представление о том, были ли они смонтированы или нет.

Все мои монтирования находятся в /media поэтому следующий скрипт показывает, какие были смонтированы:

ls -ld /media/* |                      \
  while read x x usr grp x x x x name; \
  do if [ $usr == root ];              \
     then echo $name not mounted;      \
     else echo $name mounted;          \
     fi;                               \
  done

Если вам нужно смонтировать как root, возможно, вы могли бы использовать другую группу и проверить это вместо этого.

Обратите внимание, что это проверяет, что предыдущее монтирование было успешным. Если подключенное устройство или сетевой ресурс впоследствии отключаются, не отключаясь, доступ к нему будет зависать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .