Как настроить обратный вызов NFS для разрешения скриптов?

Как настроить обратный вызов NFS для разрешения скриптов?

Контекст

У меня два сервера: NAS и клиентский сервер. Они оба небольшие (Raspberry, OLinuXino) и подключены к одному и тому же удлинителю (на котором есть кнопка питания).

Клиентский сервер монтирует тома NFS из NAS при запуске.

Проблема

Когда я включаю удлинитель, оба сервера запускаются одновременно. Но в то время, когда клиент пытается смонтировать тома NFS, они еще не доступны из NAS.

Поэтому мне приходится монтировать их вручную, а я хочу автоматизировать этот процесс.

Я использую fstab для монтирования томов в дистрибутиве Debian Wheezy.

nas.local:/media/myshare  /media/myshare nfs defaults 0 0

Как бы я это решил

Поэтому я подумал, что могу добавить скрипт на NAS, который вызывает команду ssh, чтобы сообщить клиенту: «Смонтируйте ваши тома NFS, они теперь готовы!».

Что-то вроде ssh -i idFile login@clientServer 'sudo mount -a'со стороны NAS.

Вопрос

Где лучше всего разместить такой сценарий?

NFS-хук? Что-то вроде обратного вызова?

Дополнительный вопрос

Или есть другой и лучший способ сделать это?

решение1

Я бы попытался защититься от сбоев по нескольким причинам. Задание cron, которое проверяет, смонтирован ли том, а затем монтирует его, если нет, выполнило бы это.

  1. Использовать Я бы создал сценарий, используя ответ изПроверьте, смонтирован ли каталог с помощью bash [закрыто]

  2. Для монтирования в создаваемом вами скрипте bash используйте ответ Джайлса, чтобы изменить файл sudoers и разрешить запуск скрипта cron как sudo.Как запустить определенную программу от имени root без запроса пароля?. Это может быть необязательным шагом в зависимости от ваших настроек.

  3. Настройте задание cron. Вам понадобится два. Первое — это регулярная проверка монтирования и монтирование, если его нет. Таким образом, если что-то из этого выйдет из строя независимо, оно снова включится. Второе задание должно использовать cron после загрузки. Этот ответ поможет вамЗапуск задания Crontab +1 мин после @reboot

Со стороны сервера: Вы можете прикрепить скрипт к самой службе NFS. Вы можете отредактировать скрипт службы для выполнения после короткого сна после завершения. Скрипт bash может иметь вид:

sleep 60 && my_mount_script.sh

Используя systemd, вы можете подождатьsystemd ждет завершения команды перед перезапуском/выключением или завершением других процессовдля запуска nfs.service. Замены будут включать удаление раздела Before и изменение имени after service на nfs.service

Связанный контент