एक नेटवर्क साझा करने के लिए, कई उपयोगकर्ताओं के लिए एक लिंक कैसे बनाएं, जो स्वयं एक नेटवर्क साझा पर है?


1

विंडोज आधारित समाधान का काम करना

मुझे एक नेटवर्क शेयर पर एक फ़ोल्डर मिला है जो विंडोज में बहुत अच्छा काम करता है। यह मूल रूप से अन्य उपलब्ध फ़ाइल सर्वरों का एक सूचकांक है। यह कुछ इस तरह दिखता है:

\\server1\directory
    Server2.lnk   <-(links to \\server2\files)
    Server3.lnk   <-(links to \\server3\files)
    Server4.lnk   <-(links to \\server4\files)

मैं macOS में इस कार्यक्षमता को दोहराने की कोशिश कर रहा हूं, लेकिन मैं इन समस्याओं में भाग गया हूं:

MacOS में एक उपनाम का उपयोग करने का प्रयास कर रहा है

मैं का उपयोग करने //server2/filesसे जुड़ा । एक बार जब मैं इसमें जुड़ा हुआ था , मैंने फ़ोल्डर के लिए उपयोग किया । मैं तो, जो कॉपी करने के लिए स्थान। काम करता है ... जब तक मैं एक ही कंप्यूटर से दूर मैं बनाया का उपयोग कर रहा । लेकिन अगर मैं इसे दूसरे मैक से उपयोग करने की कोशिश करता हूं, तो यह विफल हो जाता है।FinderGo -> Connect to ServerFinderAlias//server2/filesAlias//server1/directoryAliasAlias

अन्य मैक भी फ़ाइल के रूप में फ़ाइल को पहचानने के लिए प्रतीत नहीं होता है Alias। इसमें आइकन के समान एक terminalआइकन है, और जब मैं इसे डबल-क्लिक करता हूं, तो मैक मुझे बताता है कि फ़ाइल खोलने के लिए कोई एप्लिकेशन परिभाषित नहीं है। मैंने देखा कि मूल बनाई गई Aliasफ़ाइल में किसी भी प्रकार का एक्सटेंशन नहीं लगता है, इसलिए मुझे यकीन नहीं है कि एक अलग मैक को Aliasफ़ाइल के रूप में कैसे पहचाना जाना चाहिए ।

विंडोज .lnkफ़ाइल के बारे में अच्छी बात यह है कि यह मज़बूती से काम करने लगता है और लगातार इस बात से कोई फर्क नहीं पड़ता कि कौन सी मशीन .lnkएक्सेस की गई है, जबकि एक मैक Aliasफ़ाइल किसी तरह मूल मशीन के कुछ कॉन्फ़िगरेशन पर निर्भर करती है, जहाँ इसे बनाया गया था।

उदाहरण के लिए, यदि मैं Aliasफ़ाइल को खोलता हूं, तो मैं viउस गार्बल्ड कोड के बीच देख सकता हूं, जिसमें शेयर को एक्सेस करने के लिए कम से कम उपयोगकर्ता नाम शामिल है, जबकि मैं चाहता हूं कि प्रत्येक उपयोगकर्ता Aliasअपने स्वयं के क्रेडेंशियल्स (मैक का उपयोग करके शेयर को एक्सेस करने के लिए क्लिक करे। AD से जुड़ जाता है और उपयोगकर्ता अपने AD क्रेडेंशियल्स का उपयोग करके लॉगिन करते हैं)। फिर, यह UNC पथ और .lnkफ़ाइलों के साथ मूल रूप से काम करता है ।

MacOS में एक टर्मिनल स्क्रिप्ट का उपयोग करने का प्रयास कर रहा है

मैंने एक साधारण स्क्रिप्ट बनाने की कोशिश की जो शेयरों को मापती है। तो अंदर //server1/directoryमैंने Server2.commandनिम्नलिखित सामग्री के साथ एक फ़ाइल बनाई :

mkdir /Volumes/Server2
mount_smbfs //server2/files /Volumes/Server2
cd /Volumes/Server2
open .

इस समाधान के साथ मेरी समस्या यह है कि मेरे पास एक ही मशीन का उपयोग करने वाले कई सर्वर और कई उपयोगकर्ता हैं। Connect to Serverखोजक में विकल्प का उपयोग करने के बारे में एक बड़ी बात यह है कि यह /Volumesनिर्देशिका को स्वचालित रूप से "साफ" करता है । एक शेयर को खारिज करने के बाद, या एक सत्र को समाप्त करने के बाद, यह संबंधित /Volumes/Sharenameफ़ोल्डर को हटा देता है । यदि मैं इस टर्मिनल-आधारित समाधान का उपयोग करता हूं तो मुझे उसी व्यवहार को पूरा करने का कोई तरीका नहीं दिखता है।

सवाल

क्या कोई मुझे .lnkऊपर बताई गई कार्यक्षमता को दोहराने के लिए एक अच्छा तरीका दे सकता है ?

मुझे पता है कि UNC रास्तों के माध्यम से Windows लिंक फ़ंक्शंस करता है, जबकि macOS में मैं केवल इन नेटवर्क शेयरों के माध्यम से smbया afpmounts के माध्यम से एक्सेस कर सकता हूं , लेकिन जब से मैं देखता हूं कि Connect to Serverविकल्प बहुत अधिक फ़ंक्शन करता है कि मुझे इसकी आवश्यकता कैसे है, मुझे बस उसी कार्यक्षमता का उपयोग करने के लिए एक तरीका चाहिए , उस चेतावनी के साथ, जिसे मुझे इसे स्वचालित करने की आवश्यकता है, क्योंकि मैं अपने उपयोगकर्ताओं से पूछने वाला नहीं हूं (मेरे पास कई उपयोगकर्ता एक ही मशीन का उपयोग कर रहे हैं) प्रत्येक को Connect to Server Aliasमैन्युअल रूप से बनाते हैं ।


हां, जैसा कि आपने खोजा है, उपनाम बहुत ही बारीकी से कंप्यूटर से बंधे हैं जिन्होंने उन्हें बनाया है। इसके आस-पास का रास्ता सामान्य रूप से प्रतीकात्मक लिंक होगा, हालाँकि मुझे यकीन नहीं है कि आप जो व्यवस्था चाहते हैं उसमें कितना अच्छा होगा।
ट्यूबडॉग

मुझे नहीं लगता कि मैं एक प्रतीकात्मक लिंक को एक साझा smbया लिंक बना सकता हूं afp। मैं केवल कंप्यूटर पर माउंट बिंदु के लिए एक प्रतीकात्मक लिंक बना सकता था, जो वास्तव में मेरी समस्या का समाधान नहीं करता है। मुझे मूल रूप से "माउंट-ऑन-डिमांड" समाधान की आवश्यकता है जिसमें "अनमाउंट-ऑन-डिमांड" फ़ंक्शन भी शामिल है। मेरे लिए आवश्यक सभी कार्यक्षमता पहले से ही फाइंडर में निहित है Connect to Server। मुझे मूल रूप से कमांड लाइन से उस कार्यक्षमता को कॉल करने का एक तरीका चाहिए, या इसे दूसरे तरीके से दोहराएं।
डैनियल

जवाबों:


2

उत्तर मिला। आपको एक .afplocफ़ाइल बनानी होगी । यह एक .inetlocफाइल के समान है ।

.afplocफ़ाइल बनाने का सबसे आसान तरीका :

  1. खुला Finder
  2. Go -> Connect to Server
  3. Connect to Serverविंडो में पता टाइप करें (उदाहरण के लिए)afp://server.domain.com/
  4. जो आपने अभी लिखा है उसे उजागर करें ( afp://server.domain.com)
  5. जो आपने अभी उजागर किया था उसे पकड़ो और उसे डेस्कटॉप (या किसी भी फ़ोल्डर, संभवतः) और रिलीज़ पर खींचें
  6. server.domain.com.afplocआपके डेस्कटॉप पर स्वचालित रूप से एक फ़ाइल बनाई जानी चाहिए
  7. फिर आप उस फ़ाइल को कहीं भी कॉपी कर सकते हैं और यह Go -> Connect to Serverकिसी भी मैक कंप्यूटर पर स्वचालित रूप से प्रक्रिया शुरू करने के लिए कार्य करेगा
  8. यदि आप चाहें तो आप फ़ाइल का नाम बदल भी सकते हैं, और आप अन्य .afplocफ़ाइलों या पथों की ओर इंगित करने वाली अन्य फ़ाइलों को बनाने के लिए इसकी सामग्री को संपादित कर सकते हैं
  9. आप भी इसी प्रक्रिया का उपयोग कर सकते हैं और एक smb://मार्ग का विकल्प चुन सकते हैं । यह एक .inetlocफ़ाइल बनाता है जो उसी तरह काम करती है

1

डैनियल के जवाब के पूरक के लिए , यह ध्यान देने योग्य हो सकता है कि ये .afploc या .inetloc फाइलें सिर्फ सादे XML plist फाइलें हैं। तो आप उन्हें हाथ से या एक स्क्रिप्ट से भी उत्पन्न कर सकते हैं। एक smb शेयर के लिए एक उदाहरण फ़ाइल इस प्रकार है:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>URL</key>
    <string>smb://server/share</string>
</dict>
</plist>

इसलिए यदि आपके पास परिभाषित करने के लिए ऐसे कई शॉर्टकट हैं, तो आपके पास इस तरह की एक फ़ाइल हो सकती है:

$ cat shares.txt 
server1 share1
server2 share2
server3 other-share

और फिर इसे चलाने के लिए .inetloc फ़ाइलों को हर सर्वर-शेयर के लिए:

cat shares.txt | while read server share; do
  cat <<'EOF' >"$server-$share.inetloc"
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
  <dict>
      <key>URL</key>
      <string>smb://$server/$share</string>
  </dict>
  </plist>
EOF
done

0

मैक ओएस (या एक यूनिक्स) में आप क्या हासिल करना चाहते हैं, इसके बारे में मेरी भावना प्रतीकात्मक लिंक के साथ काम करती है। खोजक के पास OS एम्बेडेड फ़ंक्शंस के ऊपर फ़ंक्शंस हैं। मुझे लगता है कि एक उपनाम टर्मिनल / शेल के साथ काम नहीं करेगा। शेल पर प्रतीकात्मक लिंक बनाए जाते हैं, लेकिन फाइंडर में पारदर्शी भी काम करते हैं। मैक पर बाहरी ड्राइव के लिए थ्रेड बैकअप iPhone बाहर की कोशिश करो ... यह प्रतीकात्मक लिंक शानदार ढंग से बताते हैं।

आशा है, यह वही था जो आपकी तलाश में है!


1
मुझे पता है कि एक प्रतीकात्मक लिंक कैसे काम करता है, लेकिन जब तक मैं एक प्रतीकात्मक लिंक को गलत नहीं करता हूं, केवल स्थानीय फाइल सिस्टम पर एक पथ को इंगित करने के लिए काम करता है। एक प्रतीकात्मक लिंक का उपयोग करने के लिए मुझे पहले नेटवर्क शेयर को एक स्थानीय माउंटपॉइंट पर माउंट करना होगा, जो वास्तव में मेरे लिए अपने टर्मिनल-आधारित समाधान के साथ ठीक उसी समस्या को वापस लाता है।
डैनियल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.