SCP का मतलब सिक्योर कॉपी प्रोटोकॉल है और यह "सिक्योर शेल" प्रोटोकॉल पर आधारित है। यह कंप्यूटरों के बीच फाइल ट्रांसफर करने की एक विधि प्रदान करता है। इस ट्रांसफर में, या तो दोनों कंप्यूटर रिमोट होस्ट हो सकते हैं या एक कंप्यूटर लोकलहोस्ट हो सकता है और दूसरा, एक रिमोट होस्ट। हाल ही में, बहुत से उपयोगकर्ताओं को SCP के साथ फाइल कॉपी करने का प्रयास करते समय " No Such File or Directory " त्रुटि मिल रही है।

इस लेख में, हम उन कुछ कारणों पर चर्चा करेंगे जिनके कारण यह मुद्दा ट्रिगर होता है और इसे पूरी तरह से ठीक करने के लिए व्यवहार्य समाधान भी प्रदान करेंगे। साथ ही, हम उन कारणों पर गौर करेंगे जिनके कारण यह ट्रिगर होता है। गाइड का ध्यानपूर्वक और सटीक रूप से पालन करना सुनिश्चित करें ताकि टकराव से बचा जा सके।
SCP में "No Such File or Directory" त्रुटि के कारण
कई उपयोगकर्ताओं से कई रिपोर्ट प्राप्त करने के बाद, हमने इस मुद्दे की जांच करने का फैसला किया और इसे पूरी तरह से ठीक करने के लिए समाधानों का एक सेट तैयार किया। साथ ही, हम उन कारणों पर गौर करते हैं जिनके कारण यह ट्रिगर होता है और उन्हें नीचे सूचीबद्ध किया है।
- गलत कमांड: कुछ मामलों में, उपयोगकर्ता द्वारा फाइल कॉपी करने के लिए उपयोग की जा रही कमांड सही नहीं हो सकती है। आपको वर्तमान स्थिति के अनुरूप कॉपी कमांड को संशोधित करना होगा जिसमें आप कॉपी कर रहे हैं। फाइल कॉपी करने और पूरी डायरेक्टरी कॉपी करने की कमांड अलग-अलग हैं। साथ ही, अलग-अलग कॉन्फ़िगरेशन वाले दो कंप्यूटरों के बीच कॉपी करने की कमांड आवश्यकताओं के अनुसार बदल जाती है।
- पोर्ट नंबर: यह भी संभव है कि कंप्यूटरों के बीच फाइल कॉपी करने के लिए पोर्ट नंबर निर्दिष्ट नहीं किया गया है। दो होस्ट के बीच फाइल कॉपी करने का प्रयास करने से पहले सही पोर्ट फॉरवर्ड किया जाना चाहिए।
- गलत लॉगिन: यदि आप वर्तमान में सर्वर में लॉग इन हैं और फाइलों को डेस्कटॉप पर कॉपी करने का प्रयास कर रहे हैं, तो आप इस त्रुटि का अनुभव कर सकते हैं क्योंकि सर्वर सर्वर के भीतर स्थानीय पथ को खोजने का प्रयास करता है। सर्वर पथ से लॉग आउट करके इसे रोका जा सकता है।
- फाइल अनुमतियां: कुछ मामलों में, कॉपी की जाने वाली फाइलों की अनुमतियां "रीड-ओनली" तक सीमित हो सकती हैं। यह सर्वर को फाइलों तक पहुंचने और उन्हें कॉपी करने में सक्षम होने से रोक सकता है। फाइलों के लिए रीड और राइट अनुमतियां प्रदान करना महत्वपूर्ण है।
अब जब आपको समस्या की प्रकृति की बुनियादी समझ हो गई है, तो हम समाधानों की ओर बढ़ेंगे। टकराव से बचने के लिए इन्हें प्रस्तुत किए गए विशिष्ट क्रम में लागू करना सुनिश्चित करें।
समाधान 1: सही कमांड का उपयोग करना
आपको होस्ट के कॉन्फ़िगरेशन के आधार पर सही कमांड का उपयोग करना होगा जिनके बीच आप फाइल ट्रांसफर करना चाहते हैं। इसके लिए, हम कुछ कमांड सूचीबद्ध करेंगे जिनका उपयोग विभिन्न होस्ट कॉन्फ़िगरेशन के बीच फाइल ट्रांसफर करने के लिए किया जा सकता है।
लोकल होस्ट से रिमोट होस्ट कॉपी करना
लोकलहोस्ट वह वास्तविक कंप्यूटर है जिस तक आपकी भौतिक पहुंच है। रिमोट होस्ट वह है जिस तक उपयोगकर्ता की कोई भौतिक पहुंच नहीं है और यह एक दूरस्थ सर्वर पर स्थित है। लोकलहोस्ट से रिमोट होस्ट पर फाइल ट्रांसफर करने के लिए, आपको निम्नलिखित कमांड कॉन्फ़िगरेशन का उपयोग करना होगा।
$ scp "the_file" your_username@the_remote_host:the/path/to/the/directory
Alexa.txt नाम की एक टेक्स्ट फाइल कॉपी करने का एक उदाहरण निम्नानुसार होगा।
$ scp Alexa.txt your_username@remotehost.edu:/some/remote/directory
इसी तरह, आप पूरी डायरेक्टरी को निम्न तरीके से कॉपी कर सकते हैं
$ scp -r "the_directory_to_copy" your_username@the_remote_host:the/path/to/the/directory/to/copy/to
Alexa नाम की एक डायरेक्टरी कॉपी करने का एक उदाहरण निम्नानुसार होगा।
$ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar
रिमोट होस्ट से लोकल होस्ट कॉपी करना
यदि आप रिमोट होस्ट से लोकल होस्ट पर फाइल कॉपी करना चाहते हैं, तो कमांड कॉन्फ़िगरेशन मूल से भिन्न होते हैं। नीचे रिमोट होस्ट और लोकलहोस्ट के बीच फाइल कॉपी करने के लिए उपयुक्त कमांड दर्शाए गए हैं।
कॉपी करने के लिए एक फाइल, निम्नलिखित कमांड का उपयोग करें
$ scp your_username@the_remote_host:the_file /your/local/directory
Alexa.txt नाम की एक फाइल कॉपी करने के लिए, निम्नलिखित कमांड का उपयोग करें
$ scp your_username@the_remote_host:Alexa.txt /your/local/directory
समाधान 2: पोर्ट नंबर पहचानना
फाइल को कंप्यूटर पर कॉपी करने से पहले रिमोट होस्ट का पोर्ट नंबर पहचाना जाना चाहिए। इसके लिए, हम कॉपी प्रक्रिया शुरू करते समय पोर्ट नंबर जोड़ेंगे।
कंप्यूटरों के बीच कॉपी करते समय पोर्ट नंबर दर्शाने के लिए आप निम्नलिखित कमांड का उपयोग कर सकते हैं।
$ scp -P port_number your_username@the_remote_host:the_file /your/local/directory
रिमोट होस्ट से या उस पर कॉपी करते समय पोर्ट नंबर दर्शाने के लिए इसी कमांड का उपयोग किया जा सकता है। आपको बस कमांड के "$ scp " भाग के बाद "-P (पोर्ट नंबर)" जोड़ना होगा।
समाधान 3: अनुमतियां बदलना
कंप्यूटरों के बीच कॉपी करते समय फाइलों को उचित अनुमतियां प्रदान की जानी चाहिए। इसलिए, इस चरण में, हम फाइल की अनुमतियों को बदलने की प्रक्रिया दर्शाएंगे। इसके लिए:
- जिस फाइल को आप कॉपी करने का प्रयास कर रहे हैं उस पर राइट-क्लिक करें।
- "Properties" पर क्लिक करें और "Security" टैब चुनें।

- सुनिश्चित करें कि सभी अनुमतियां "System" और "Administrator" को प्रदान की गई हैं।

नोट: साथ ही, सुनिश्चित करें कि फाइल कॉपी करते समय आप सर्वर पथ में लॉग इन नहीं हैं।