LINUX.ORG.RU

Проверка NFS шары

 


0

2

Всем привет! имеется 1 NFS шара которая довольно часто отваливается, хочу перед бэкапом ее проверять, доступна ли она, пробую проверять ее через

if [ -d "$_NFS_SHARE_PATH" ]; then
  echo "Directory exists..."
else
  echo "Error: ${_NFS_SHARE_PATH} not found. Can not continue."
  exit 1
fi

но проблема в том что, из за отвалившейся шары все встает, т.е скрипт выполняется бесконечно, подумал-подумал и решил пойти другим путём, создавая там файл

timeout -k 1 -s SIGKILL echo test > $_NFS_SHARE_PATH

но и он собака не отдает мне промпт если шара отвалилась ( сервак выключили)

Так может сработать:

timeout -k 1 -s SIGKILL touch "$_NFS_SHARE_PATH"

Перенаправление же выполняют не команды, а оболочка, поэтому на него timeout не действует. Ну или надо вызывать ещё одну оболочку вроде timeout -k 1 -s SIGKILL sh -c "echo test > $_NFS_SHARE_PATH".

xaizek ★★★★★
()

У NFS вообще свои заморочки насчёт отвалившегося хоста. На некоторых настройках зависший на ожидании IO почти невозможно прибить. Нужно изменить настройки монтирования, см man nfs soft / hard. Если сервер часто выключается, то с настройкой клиентов на hard ты намучаешься.

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)

cat /proc/mounts | grep nfs и nfsstat тебе в помощь .

sova ★★
()

Если шара отвалилась, то любое обращение к ней приводит к состоянию D, процесс в этом состоянии нельзя убить. Запукаете дочерний процесс, допустим ls NFS-каталога в фоне, ждёте секунду. Если через секунду процесс с этим PID'ом есть ($!), значит шара отвалилась.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.