"-" (डैश) युक्त NFS पथ निर्यात करें


10

मैं NFS निर्यात फ़ाइल के साथ एक चुटकी के एक बिट में हूँ।

विशेष रूप से, मुझे पथ नाम में "-" युक्त निर्देशिका निर्यात करने का कोई तरीका नहीं मिल रहा है।

मैनुअल (निर्यात (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.

दुर्भाग्यवश, ऐसा नहीं है। विशेष रूप से, यदि पथनाम में "-" है, या तो शब्दशः, या \ 055 के साथ या दोहरे उद्धरण चिह्नों में संलग्न है, यह अभी भी "-" के बिना नाम को संदर्भित करता है

कोई विचार? मेरे पास बड़ी संख्या में निर्देशिकाएं हैं, सभी फॉर्म हैं

  • / खंड / buildsystem-S3C2440
  • / खंड / buildsystem-tao3530

और मैं उन सभी को nfs निर्यात के रूप में उपलब्ध कराना पसंद करूंगा। लिपियों में हर जगह "_" के साथ "-" की जगह लेने से कम, क्या इसे "-" के साथ किया जा सकता है?


मेरे पास कोई ठोस जवाब नहीं है, लेकिन यह मेरे दिमाग में आया: क्या आपके पास कुछ प्रकार के एनएफएस प्रबंधक उपलब्ध हैं (शायद कुछ चीज़ एक्स ऐप) जो आपके लिए निर्यात फ़ाइल उत्पन्न करेंगे? हो सकता है कि सिंटैक्स की जांच करने के लिए परीक्षण मशीन पर इसे आज़माएं और फिर प्रश्न में बॉक्स पर लागू करें। जरा
सोचिए

मुझे इस तरह के किसी भी
बर्तन के

1
आपके पास nfs-utils का कौन सा संस्करण है?
Kjetil Jørgensen

मेरे साथ डेबियन लेन (एनएफएस के बर्तन 1.1.2, कर्नेल 2.6.26) के तहत काम करता /var/tmp/foo-bar localhost(all_squash,async,no_subtree_check)है /etc/exports
गाइल्स का SO- बुराई पर रोक '21

आप किस सिस्टम पर हैं? मेरा अनुमान है कि आप लिनक्स का उपयोग करके इसे बैकस्लैश कर सकते हैं nfs-kernel-server, लेकिन लिनक्स का नहीं nfs-user-server
मिकेल

जवाबों:


3

इस पाठ के आधार पर, मुझे लगता है कि आप लिनक्स पर हैं?

यदि निर्यात नाम में रिक्त स्थान हैं तो इसे दोहरे उद्धरण चिह्नों का उपयोग करके उद्धृत किया जाना चाहिए। आप निर्यात नाम में रिक्त स्थान या अन्य असामान्य वर्ण भी निर्दिष्ट कर सकते हैं, जिसमें तीन ऑक्टल अंकों के रूप में वर्ण कोड का उपयोग किया जाता है।

लिनक्स सिस्टम पर दो अलग-अलग एनएफएस सर्वर कार्यान्वयन हैं:

  • उपयोगकर्ता एनएफएस
  • कर्नेल NFS

कृपया ps -ef | grep nfsdदेखने का प्रयास करें कि आपके पास कौन सा है।

मुझे लगता है कि उपयोगकर्ता NFS nfsdया के रूप में दिखाई देगा unfsd, और कर्नेल NFS के रूप में दिखाई देगा [nfsd]
(ध्यान दें कि एक के पास चौकोर कोष्ठक हैं, लेकिन दूसरा नहीं है।)

कर्नेल NFS के साथ आपको दोहरे उद्धरण चिह्नों या अष्टांगिक पलायन का उपयोग करना चाहिए, जैसे

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

या

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

(संदर्भ: nfs-utils-1.1.2, xgettokमें support/nfs/xio.c)

उपयोगकर्ता NFS के साथ, निर्यात नामों में रिक्त स्थान की अनुमति नहीं है, लेकिन माइनस साइन ( -) को भागने की आवश्यकता नहीं होनी चाहिए, जैसे

/path/to/mount-point <options>

(संदर्भ: nfs-user-server-2.2beta47, filt_getcइन auth_init.c)

यदि आप इसके नीचे नहीं पहुंच सकते हैं, तो मैं आपको उपयोगकर्ता NFS से कर्नेल NFS पर स्विच करने का सुझाव दूंगा ताकि आप उद्धृत या अष्टाध्यायी का उपयोग कर सकें।

डेबियन और उबंटू पर:

  • apt-get install kernel-nfs-server

रेड हैट और फेडोरा पर:

  • yum install nfs-utils

1

बैकस्लैश के साथ भागने से काम होता है?

  • / खंड / buildsystem \ -s3c2440
  • / खंड / buildsystem \ -tao3530

हां, मैंने कोशिश की। नहीं, यह काम नहीं करता है :(
qt

1

क्या आपने बस भागने की कोशिश की है \-। मैं एक एनएफएस विशेषज्ञ नहीं हूं - लेकिन इसकी एक कोशिश के लायक है। यह कई अन्य स्थितियों में काम करता है ...


हां, मैंने कोशिश की। नहीं, यह काम नहीं करता है।
qdot

यहाँ - विचार करने के लिए एक चित्रमय NFS उपकरण: dailypackage.fedorabook.com/index.php?/archives/…
Danny Staple

1

ठीक है, शायद एक और समाधान। यह थोड़ा परेशान करने वाला है, लेकिन सभी पिछली निर्देशिकाओं के लिए प्रतीकात्मक लिंक वाली एक निर्देशिका क्यों नहीं बनाई जा रही है (इसके लिए एक स्क्रिप्ट या थोड़ी देर के लूप का उपयोग किया जा सकता है)। यदि प्रतीकात्मक लिंक के नामों में कोई डैश नहीं है, तो आपको उन्हें निर्यात करने में सक्षम होना चाहिए। इस तरह, जैसा कि आप चाहते हैं, आपको अपनी वास्तविक निर्देशिकाओं के नामों को संशोधित करने की आवश्यकता नहीं होगी।

मुझे यकीन नहीं है कि यह काम करेगा, लेकिन यह शायद इसे एक शॉट देने के लायक है, है ना?


1

यह एक हैक का एक सा है, लेकिन आप प्रत्येक निर्देशिका के लिए बाइंड माउंट बना सकते हैं और बाइंड माउंट के गंतव्यों को निर्यात कर सकते हैं। कुछ इस तरह:

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

मुझे यकीन नहीं है कि अगर टन के टन होने से फ़ाइल की पहुंच धीमी हो जाएगी, हालांकि।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.