Предотвращение замораживания клиентской системы разорванным соединением NFS

Если я правильно понял, вы хотите передать аргумент (смонтированный том) вашему сценарию. Вот очень простой пример ( dfScript.sh ) того, как я бы это сделал:

#!/bin/bash

# Get the volume from command line
volume="$1"

df -h "$volume" | egrep -o '[0-9]+%'

exit 0

Вызов этого будет примерно так:

./dfScript.sh /home/
12%

$ 1 - это первый аргумент, переданный скрипту, в этом случае я использовал свой каталог / home в качестве примера, но вы, конечно, можете указать путь к любому тому.

Кроме того, вам действительно не нужно назначать $ 1 переменной, чтобы использовать ее, я только что сделал это выше для ясности.

Подробнее о передаче аргументов в bash можно прочитать здесь .

22
02.03.2016, 20:30
2 ответа

intr должен позволить вам снова получить управление, когда вы нажмете ^C, но обычно не сразу.

 intr Если файловая операция NFS имеет основной таймаут, и она жестко смонтирована, то разрешите сигналам прерывать
 файловую операцию и заставить ее вернуть EINTR вызывающей программе. По умолчанию не разрешается
 прерывать файловые операции.

Как вы говорите, проблема здесь в ожиданиях. Проблемы с сетью могут быть временными, но сбой операции - это навсегда. Поэтому большинство операций по умолчанию просто блокируются до завершения операции.

Это стандартный ответ, но, посмотрев текущую страницу man, я вижу следующее:

 Опция монтирования intr / nointr устарела после версии ker-...
 nel 2.6.25. Только SIGKILL может прервать текущую операцию NFS
 на этих ядрах, и если она указана, эта опция монтирования
 опция игнорируется, чтобы обеспечить обратную совместимость
 со старыми ядрами.

Таким образом, мне кажется, что это не проблема NFS3/NFS4, а решение о том, как работает intr. Поэтому вы должны быть в состоянии KILL процесс, но это может не дать вам много пользы.

Я не смог найти обсуждение того, почему эта опция была удалена. Можете ли вы убить -KILL

свой процесс?
4
27.01.2020, 19:43

Часть моего ответа - это мнение, основанное на опыте. Там, где у меня есть факты, я буду (постараюсь не забыть) давать на них ссылки.

  1. NFS 4 считается улучшением по сравнению с версиями 2 и 3. Однако я пока не видел убедительных примеров, когда эти улучшения были бы необходимы. Возможно, это потому, что я нацелен на экспорт файловых систем клиентам Windows с помощью Samba и клиентам Unix/Linux с помощью NFS.
  2. Я бы не рекомендовал soft практически ни при каких обстоятельствах. Он позволяет отбрасывать данные при ошибке. Вместо этого я бы предложил hard, intr.
  3. Как вы указываете, intr не подходит для NFS 4, но, похоже, это изменение ядра, а не NFS.
  4. NFS Automounter (autofs) хорошо работает для моих случаев использования с NFS версий 2 и 3, и помогает защитить мои клиентские системы от сбоя сервера, монтируя файловые системы NFS только тогда, когда они необходимы.

Я предлагаю вам рассмотреть возможность перехода с NFS 4 на NFS 3 и посмотреть, поможет ли это в вашем конкретном случае. Не думайте об этом как о понижении.

2
27.01.2020, 19:43

Теги

Похожие вопросы