2011-01-28 9 views
5
से अधिक बढ़ गया है कि क्या

df आयकर NFS $ निर्देशिकाकैसे (श में) बताने के लिए एक निर्देशिका एनएफएस

रिटर्न उत्पादन की दो पंक्तियाँ यदि निर्देशिका अगर यह नहीं है एनएफएस घुड़सवार और एक पंक्ति है।

df के कुछ संस्करणों के लिए बाहर निकलें स्थिति 1 अगर यह नहीं एनएफएस घुड़सवार था देना है, लेकिन GNU coreutils 5.3.0 नहीं है ...

if [ `df -t nfs . | wc -l` = 2 ]; 

असजीला लगता है और उनके सहयोगियों कि यह नहीं है कहते हैं त्रुटियों के लिए पर्याप्त रूप से जांचें। क्या ऐसा करने के लिए इससे अच्छा तरीका है?

+0

मैंने कुछ विकल्प आजमाए हैं, लेकिन आपका अभी भी मेरे लिए अधिक सुरुचिपूर्ण लगता है। क्या आपने सहकर्मियों ने उन त्रुटियों का जिक्र किया जो इस विधि को दूर करेंगे? एक अच्छा प्रयास के लिए +1। –

+0

ठीक है, मुझे एक समस्या मिली। यदि पहला आउटपुट कॉलम बहुत लंबा है (उदा। 'Nfs_server:/long/mount/point'), तो' df' आउटपुट को दो पंक्तियों में विभाजित करेगा और आप 'wc -l = 3' के साथ समाप्त हो जाएंगे। अपने समाधान को 'if [.... -gt 1]' में बदलकर आसानी से हल किया गया। –

+0

@ शॉनचिन: यदि आप '--portability' /' -P' विकल्प लागू करते हैं तो यह लंबी लाइनों को लपेट नहीं देगा। मशीन प्रसंस्करण के लिए बिल्कुल सही। ('डीएफ (जीएनयू कोर्यूटिल्स) 7.4 'के साथ परीक्षण किया गया) – RobM

उत्तर

0

आप हमेशा एमटीएबी की जांच कर सकते हैं, यह एक फ्लैटफाइल में सभी घुड़सवार फाइल सिस्टम का रिकॉर्ड रखता है, अगर आप स्ट्र्रेस का उपयोग करते हैं और देखो कि सभी डीएफ वैसे भी हैं। मुझे लगता है कि यदि आप इसे लिनक्स में चला रहे हैं तो आप/proc/mounts का भी उपयोग कर सकते हैं।

+0

'/etc/mtab' का उपयोग करने के लिए बहुत अधिक पार्सिंग/प्रोसेसिंग की आवश्यकता होगी। यदि लक्ष्य निर्देशिका में माउंट पॉइंट के लिए एक सिम लिंक शामिल है तो भी असफल हो जाएगा। –

3

डुप्लिकेट प्रश्न How do I determine if a directory is an NFS mount point in shellscript। संक्षिप्त उत्तर, stat कमांड का उपयोग करें।

+2

+1 अच्छी तरह से देखा गया। लिंक किए गए उत्तर से, समकक्ष समाधान 'अगर [$ (stat -f -L -c% टी।) == "nfs"] 'होगा। –

संबंधित मुद्दे