Экспортировать путь NFS, содержащий " - " (тире)

Я немного ущипнул файл экспорта NFS.

в частности, я не могу найти способ, чтобы экспортировать каталог, содержащий "-" в имени пути.

вручную(exports (5)) состояния:

Also, each line may have one or more specifications for default options 
after the path name, in the form of a dash ("-") followed by an option 
list. The option list is used for all subsequent exports on that line 
only.

затем он говорит:

If an export name contains spaces it should be quoted using double quotes. 
You can also specify spaces or other unusual character in the export name 
using a backslash followed by the character code as three octal digits.

к сожалению, это не так. В частности, если путь содержит" -", дословно или с 55 или заключен в двойные кавычки, он по-прежнему ссылается на имя без" -"

какие идеи? У меня есть большое количество каталогов, все вида

  • /том/система сборки-s3c2440 только радовался я
  • / vol / buildsystem-tao3530

и я бы предпочел, чтобы все они были доступны как экспорт nfs. Если не заменять " - " на " _ "везде в скриптах, можно ли это сделать с помощью" -"?

29
задан qdot
14.05.2023 15:54 Количество просмотров материала 3334
Распечатать страницу

5 ответов

основываясь на этом тексте, я предполагаю, что вы на Linux?

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

есть два разных НФС реализаций серверов на Linux:

  • пользователь NFS
  • ядра NFS

пожалуйста, попробуйте запустить ps -ef | grep nfsd чтобы увидеть, какой из них у вас есть.

я думаю, что пользователь NFS будет выглядеть как nfsd или unfsd, а ядро NFS будет выглядеть как [nfsd].

(Обратите внимание, как один имеет квадратные скобки, а другой нет.)

в ядре NFS вы должны использовать двойные кавычки или восьмеричные Escape, например

"/path/to/mount-point" <options>

или

/path/to/mount5point <options>

(ссылка: nfs-utils-1.1.2,xgettok in support/nfs/xio.c)

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

/path/to/mount-point <options>

(ссылка: nfs-user-server-2.2beta47,filt_getc in auth_init.c)

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

в Debian и Ubuntu:

  • apt-get install kernel-nfs-server

На Красный Шляпа и фетровая шляпа:

  • yum install nfs-utils
3
отвечен Mikel 2023-05-15 23:42

работает ли побег с обратной косой чертой?

  • /том/система сборки\-s3c2440 только радовался я
  • / vol / buildsystem\ - tao3530
1
отвечен nick3216 2023-05-16 01:59

вы пробовали просто убежать с \-. Я не эксперт NFS, но стоит попробовать. Это работает во многих других ситуациях...

1
отвечен Danny Staple 2023-05-16 04:16

ок, может быть, другое решение. Это немного хлопотно, но почему бы не создать каталог, содержащий символические ссылки на все предыдущие каталоги (для этого можно использовать скрипт или цикл while). Если имена символьных ссылок не содержат тире, их можно экспортировать. Таким образом, как вы хотели, вам не нужно будет изменять имена ваших реальных каталогов.

Я не уверен, что это сработает, но, вероятно, стоит попробовать, не так ли это?

1
отвечен Christian Vincenot 2023-05-16 06:33

Это немного хак, но вы можете создать привязки монтирует к каждому из каталогов и экспортировать привязки монтирует назначения. Что-то вроде:

mount -o bind /vol/buildsystem-s3c2440 /vol/buildsystems3c2440
mount -o bind /vol/buildsystem-tao3530 /vol/buildsystemtao3530

Я не уверен, что наличие тонн монтирования замедлит доступ к файлам.

1
отвечен Easter Sunshine 2023-05-16 08:50

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх