“-” içeren NFS yolunu dışa aktar (tire)


10

NFS ihracat dosyası ile biraz tutam var.

Özellikle, yol adında "-" içeren bir dizini vermek için bir yol bulamıyorum.

El ile (ihracat (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.

Daha sonra şunu belirtir:

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.

Ne yazık ki, bu durum böyle değil. Özellikle, yol adı kelimesi kelimesine veya \ 055 ile "-" içeriyorsa veya çift tırnak işaretleri içine alınmışsa, yine de "-" içermeyen adı belirtir.

Herhangi bir fikir? Çok sayıda dizin var, tüm form

  • / Hacim / Buildsystem-S3C2440
  • / Hac / Buildsystem-tao3530

ve hepsini nfs olarak dışa aktarmayı tercih ederim. Komut dosyalarının her yerinde "-" yerine "_" yazmanın yerine, "-" ile yapılabilir mi?


Sağlam bir cevabım yok, ama bu kafama girdi: Sizin için ihracat dosyasını oluşturacak bir çeşit nfs yöneticisi (muhtemelen bazı sevimsiz X uygulaması) var mı? Belki sadece sözdizimini kontrol etmek ve daha sonra söz konusu kutuya uygulamak için test makinesinde deneyin. Sadece bir düşünce ...
功 律 功

Böyle bir araç bilmiyorum ...
qdot

1
Hangi nfs-utils sürümüne sahipsiniz?
Kjetil Jørgensen

İle Debian lenny altında benim için Works (NFS, çekirdek 2.6.26 1.1.2 UTILS) /var/tmp/foo-bar localhost(all_squash,async,no_subtree_check)içinde /etc/exports.
Gilles 'SO- kötü olmayı bırak'

Hangi sistemdesiniz? Benim tahminim, Linux kullanarak nfs-kernel-serverdeğil, Linux kullanarak ters eğik çizgiden kaçabileceğinizdir nfs-user-server.
Mikel

Yanıtlar:


3

Bu metne dayanarak, Linux'ta olduğunuzu varsayıyorum?

Dışa aktarma adı boşluk içeriyorsa, çift tırnak işareti içine alınmalıdır. Dışa aktarma adında boşluklar veya başka bir olağandışı karakter, ardından ters eğik çizgi ve ardından karakter kodunu üç sekizli basamak olarak belirtebilirsiniz.

Linux sistemlerinde iki farklı NFS sunucusu uygulaması vardır:

  • kullanıcı NFS'si
  • çekirdek NFS

Lütfen ps -ef | grep nfsdhangisine sahip olduğunuzu görmek için koşmayı deneyin .

Bence kullanıcı NFS nfsdveya olarak unfsdve çekirdek NFS olarak görünecektir [nfsd].
(Birinde köşeli parantez olduğunu ancak diğerinin olmadığını unutmayın.)

Çekirdek NFS ile çift tırnak işareti veya sekizli kaçışlar kullanmalısınız, örn.

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

veya

/path/to/mount\055point <options>

(Referans: nfs-utils-1.1.2, xgettokinç support/nfs/xio.c)

Kullanıcı NFS'sinde, dışa aktarma adlarında boşluklara izin verilmez, ancak eksi işareti ( -) kaçmayı gerektirmemelidir, ör.

/path/to/mount-point <options>

(Referans: nfs-kullanıcı-sunucu-2.2beta47, filt_getcin auth_init.c)

Eğer altına inemiyorsanız, alıntı veya sekizli kaçışları kullanabilmeniz için kullanıcı NFS'sinden çekirdek NFS'ye geçmenizi öneririm.

Debian ve Ubuntu'da:

  • apt-get install kernel-nfs-server

Red Hat ve Fedora'da:

  • yum install nfs-utils

1

Ters eğik çizgi ile kaçmak işe yarıyor mu?

  • / Hacim / Buildsystem \ -s3c2440
  • / Hacim / Buildsystem \ -tao3530

Evet, denedim. Hayır, bu işe yaramaz :(
qdot


1

Tamam, belki başka bir çözüm. Biraz zahmetli, ancak neden önceki tüm dizinlere sembolik bağlantılar içeren bir dizin oluşturmuyorsunuz (bunun için bir komut dosyası veya while döngüsü kullanılabilir). Sembolik bağlantıların adları herhangi bir tire içermiyorsa, bunları dışa aktarabilmeniz gerekir. Bu şekilde, dilediğiniz gibi, gerçek dizinlerinizin adlarını değiştirmeniz gerekmez.

İşe yarayacağından emin değilim, ama muhtemelen denemeye değer, değil mi?


1

Bu biraz hack'tir, ancak dizinlerin her birine bağlama bağları oluşturabilir ve bağlama bağları hedeflerini dışa aktarabilirsiniz. Gibi bir şey:

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

Tonlarca bağlantının olmasına rağmen dosya erişimini yavaşlatacak mı emin değilim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.