Trochę mi się podoba plik eksportu NFS.
W szczególności nie mogę znaleźć sposobu na wyeksportowanie katalogu zawierającego „-” w nazwie ścieżki.
Instrukcja (eksport (5)) stanowi:
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.
Następnie stwierdza:
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.
Niestety tak nie jest. W szczególności, jeśli nazwa ścieżki zawiera „-”, albo dosłownie, albo \ 055 lub jest ujęta w cudzysłów, nadal odnosi się do nazwy bez „-”
Jakieś pomysły? Mam dużą liczbę katalogów, wszystkie w formie
- / vol / buildsystem-s3c2440
- / vol / buildsystem-tao3530
i wolałbym mieć je wszystkie dostępne jako eksport NFS. Czy zamiast skryptu „-” na „_” wszędzie w skryptach, można to zrobić za pomocą „-”?
linux
networking
unix
nfs
qdot
źródło
źródło
/var/tmp/foo-bar localhost(all_squash,async,no_subtree_check)
in/etc/exports
.nfs-kernel-server
, ale nie Linuksanfs-user-server
.Odpowiedzi:
Na podstawie tego tekstu zakładam, że korzystasz z systemu Linux?
Istnieją dwa różne wdrożenia serwera NFS w systemach Linux:
Spróbuj uruchomić,
ps -ef | grep nfsd
aby zobaczyć, który masz.Myślę, że NFS użytkownika pojawi się jako
nfsd
lubunfsd
, a NFS jądra pojawi się jako[nfsd]
.(Zauważ, że jeden ma nawiasy kwadratowe, a drugi nie.)
W jądrze NFS powinieneś używać podwójnych cudzysłowów lub znaków ósemkowych, np
lub
(Odwołanie: nfs-utils-1.1.2,
xgettok
insupport/nfs/xio.c
)W przypadku użytkownika NFS spacje nie są dozwolone w nazwach eksportu, ale znak minus (
-
) nie powinien wymagać zmiany znaczenia, np(Odwołanie: nfs-user-server-2.2beta47,
filt_getc
inauth_init.c
)Jeśli nie możesz dojść do sedna, sugerowałbym przejście z NFS użytkownika na NFS jądra, abyś mógł używać cudzysłowów lub znaków ósemkowych.
W systemach Debian i Ubuntu:
apt-get install kernel-nfs-server
W Red Hat i Fedorze:
yum install nfs-utils
źródło
Czy ucieczka z odwrotnym ukośnikiem działa?
źródło
Czy próbowałeś po prostu uciec
\-
. Nie jestem ekspertem od NFS - ale warto spróbować. Działa w wielu innych sytuacjach ...źródło
Ok, może inne obejście. Jest to trochę kłopotliwe, ale dlaczego nie stworzyć katalogu zawierającego dowiązania symboliczne do wszystkich poprzednich katalogów (do tego celu można użyć skryptu lub pętli while). Jeśli nazwy dowiązań symbolicznych nie zawierają myślnika, możesz je wyeksportować. W ten sposób, jak sobie życzysz, nie będziesz musiał modyfikować nazw swoich prawdziwych katalogów.
Nie jestem pewien, czy to zadziała, ale prawdopodobnie warto spróbować, prawda?
źródło
Jest to trochę włamanie, ale możesz utworzyć uchwyty powiązań do każdego z katalogów i wyeksportować miejsca docelowe podłączeń. Coś jak:
Nie jestem jednak pewien, czy posiadanie mnóstwa mocowań spowolni dostęp do plików.
źródło