Estou um pouco preocupado com o arquivo de exportação NFS.
Especificamente, não consigo encontrar uma maneira de exportar um diretório contendo "-" no nome do caminho.
O manual (exportações (5)) declara:
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.
Em seguida, afirma:
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.
Infelizmente, este não é o caso. Especificamente, se o nome do caminho contiver "-", literalmente ou com \ 055 ou estiver entre aspas duplas, ele ainda se refere ao nome sem "-"
Alguma ideia? Eu tenho um grande número de diretórios, todos no formato
- / vol / buildsystem-s3c2440
- / vol / buildsystem-tao3530
e eu prefiro tê-los todos disponíveis como exportações nfs. Com exceção de substituir o "-" por "_" em todos os lugares nos scripts, isso pode ser feito com "-"?
linux
networking
unix
nfs
qdot
fonte
fonte
/var/tmp/foo-bar localhost(all_squash,async,no_subtree_check)
in/etc/exports
.nfs-kernel-server
, mas não o Linuxnfs-user-server
.Respostas:
Com base neste texto, suponho que você esteja no Linux?
Existem duas implementações de servidor NFS diferentes nos sistemas Linux:
Por favor, tente correr
ps -ef | grep nfsd
para ver qual deles você possui.Eu acho que o usuário NFS aparecerá como
nfsd
ouunfsd
e o NFS do kernel aparecerá como[nfsd]
.(Observe como um possui colchetes, mas o outro não.)
Com o NFS do kernel, você deve usar aspas duplas ou escapes octais, por exemplo
ou
(Referência: nfs-utils-1.1.2,
xgettok
polsupport/nfs/xio.c
)Com o NFS do usuário, os espaços não são permitidos nos nomes de exportação, mas um sinal de menos (
-
) não deve exigir escape, por exemplo,(Referência: nfs-user-server-2.2beta47,
filt_getc
polauth_init.c
)Se você não conseguir chegar ao fundo, sugiro alternar entre o NFS do usuário e o NFS do kernel, para que você possa usar aspas ou octais.
No Debian e Ubuntu:
apt-get install kernel-nfs-server
No Red Hat e no Fedora:
yum install nfs-utils
fonte
Escapar com barra invertida funciona?
fonte
Você já tentou simplesmente fugir com
\-
. Eu não sou um especialista em NFS - mas vale a pena tentar. Funciona em muitas outras situações ...fonte
Ok, talvez outra solução alternativa. É um pouco problemático, mas por que não criar um diretório contendo links simbólicos para todos os diretórios anteriores (um script ou um loop while pode ser usado para isso). Se os nomes dos links simbólicos não contiverem nenhum traço, você poderá exportá-los. Dessa forma, como você desejou, você não precisaria modificar os nomes dos seus diretórios reais.
Não tenho certeza se funcionaria, mas provavelmente vale a pena tentar, não é?
fonte
Isso é um pouco complicado, mas você pode criar montagens de ligação para cada um dos diretórios e exportar os destinos das montagens de ligação. Algo como:
Não tenho certeza se ter toneladas de montagens retardará o acesso a arquivos.
fonte