Строки MOUNTS и MOUNT_EXCLUDE несущественны для этого сценария, как показано.
Вы не четко определили, где устанавливается ${NFSdir}
.
Первая часть сценария предполагает ${NFSdir}
содержит одно значение каталога;вторая часть (цикл) предполагает, что она может содержать несколько значений.Возможно, это не имеет значения, поскольку цикл безоговорочно завершает работу скрипта на первой итерации, но это не совсем понятный и чистый способ его написания.
Вы создаете скрипт /tmp/.nfs
, но:
- Вы не выполняете его.
- Вы не удаляете его.
- Вы не допускаете одновременное выполнение нескольких сценариев, выполняя отдельные процессы.имя файла (например,
/tmp/.nfs.$$
). - Непонятно, почему вы скрываете скрипт в каталоге
/tmp
с префиксом .
к имени.Это, вероятно, не очень хорошая идея.
Использование:
tmpcmd=${TMPDIR:-/tmp}/nfs.$$
trap "rm -f $tmpcmd; exit 1" 0 1 2 3 13 15
...rest of script - modified to use the generated script...
rm -f $tmpcmd
trap 0
Это дает вам максимальный шанс очистить временный скрипт.
Естьdf
не осталось в сценарии, тогда как вопрос подразумевает, что он должен быть.Вам также следует взглянуть на команду timeout
(хотя команды зависают, потому что NFS не отвечает, как правило, очень трудно убить).