Ich bin in einer Notlage mit NFS-Exportdatei.
Insbesondere kann ich keine Möglichkeit finden, ein Verzeichnis zu exportieren, das "-" im Pfadnamen enthält.
Handbuch (Exporte (5)) besagt:
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.
Es heißt dann:
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.
Dies ist leider nicht der Fall. Insbesondere wenn der Pfadname "-" enthält, entweder wörtlich oder mit \ 055 oder in doppelten Anführungszeichen steht, bezieht er sich immer noch auf den Namen ohne "-"
Irgendwelche Ideen? Ich habe eine große Anzahl von Verzeichnissen, alle in der Form
- / vol / buildsystem-s3c2440
- / vol / buildsystem-tao3530
und ich würde es vorziehen, sie alle als NFS-Exporte verfügbar zu haben. Kann das "-" nicht überall in den Skripten durch "_" ersetzt werden, sondern mit "-"?
linux
networking
unix
nfs
qdot
quelle
quelle
/var/tmp/foo-bar localhost(all_squash,async,no_subtree_check)
in/etc/exports
.nfs-kernel-server
, aber nicht unter Linuxnfs-user-server
.Antworten:
Aufgrund dieses Textes gehe ich davon aus, dass Sie unter Linux arbeiten.
Auf Linux-Systemen gibt es zwei verschiedene NFS-Server-Implementierungen:
Bitte versuchen Sie zu rennen, um
ps -ef | grep nfsd
zu sehen, welche Sie haben.Ich denke, Benutzer-NFS wird als
nfsd
oderunfsd
angezeigt, und Kernel-NFS wird als angezeigt[nfsd]
.(Beachten Sie, wie einer eckige Klammern hat, der andere jedoch nicht.)
Bei Kernel-NFS sollten Sie doppelte Anführungszeichen oder oktale Escapezeichen verwenden, z
oder
(Referenz: nfs-utils-1.1.2,
xgettok
insupport/nfs/xio.c
)Mit Benutzer-NFS sind Leerzeichen in Exportnamen nicht zulässig, aber ein Minuszeichen (
-
) sollte kein Escapezeichen erfordern, z(Referenz: nfs-user-server-2.2beta47,
filt_getc
inauth_init.c
)Wenn Sie dem nicht auf den Grund gehen können, würde ich empfehlen, von Benutzer-NFS zu Kernel-NFS zu wechseln, damit Sie Anführungszeichen oder Oktal-Escapezeichen verwenden können.
Auf Debian und Ubuntu:
apt-get install kernel-nfs-server
Auf Red Hat und Fedora:
yum install nfs-utils
quelle
Funktioniert das Entkommen mit Backslash?
quelle
Haben Sie versucht, einfach mit zu entkommen
\-
. Ich bin kein NFS-Experte - aber es ist einen Versuch wert. Es funktioniert in vielen anderen Situationen ...quelle
Ok, vielleicht eine andere Problemumgehung. Es ist etwas mühsam, aber warum nicht ein Verzeichnis erstellen, das symbolische Links zu allen vorherigen Verzeichnissen enthält (hierfür könnte ein Skript oder eine while-Schleife verwendet werden). Wenn die Namen der symbolischen Links keinen Bindestrich enthalten, sollten Sie sie exportieren können. Auf diese Weise müssten Sie, wie Sie möchten, die Namen Ihrer realen Verzeichnisse nicht ändern.
Ich bin mir nicht sicher, ob es funktionieren würde, aber es lohnt sich wahrscheinlich, es auszuprobieren, nicht wahr?
quelle
Dies ist ein kleiner Hack, aber Sie können Bindungs-Mounts für jedes der Verzeichnisse erstellen und die Bind-Mounts-Ziele exportieren. Etwas wie:
Ich bin mir nicht sicher, ob Tonnen von Mounts den Dateizugriff verlangsamen werden.
quelle