SSH पर फ़ाइलें स्थानांतरित करना [बंद]


461

मैं कमांड लाइन पर एक दूरस्थ सर्वर में SSHing कर रहा हूं, और scpकमांड के साथ अपने स्थानीय मशीन पर निर्देशिका को कॉपी करने की कोशिश कर रहा हूं । हालाँकि, दूरस्थ सर्वर यह "उपयोग" संदेश देता है:

[Stewart:console/ebooks/discostat] jmm% scp -p ./styles/
usage: scp [-1246BCEpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 [...] [[user@]host2:]file2
[Stewart:console/ebooks/discostat] jmm%

मैं दोनों दिशाओं में फ़ाइलों को स्थानांतरित करने में सक्षम होना चाहता हूं। मैंने जो पढ़ा, उससे मुझे लगा कि उपरोक्त कमांड डाउनलोड करने, और scp -p [localpath] [remotepath]अपलोड करने के लिए काम करेगा ?

जवाबों:


733

आपको scpकहीं न कहीं कुछ चाहिए । आपके पास है scp ./styles/, इसलिए आप सुरक्षित प्रतिलिपि कह रहे हैं ./styles/, लेकिन यह नहीं कि इसे कहाँ कॉपी करें।

आम तौर पर, यदि आप डाउनलोड करना चाहते हैं, तो यह जाएगा:

# download: remote -> local
scp user@remote_host:remote_file local_file 

जहां local_file। वास्तव में आप जिस फ़ाइल में कॉपी कर रहे हैं डाल करने के लिए एक निर्देशिका हो सकता है अपलोड करने के लिए, यह विपरीत है:

# upload: local -> remote
scp local_file user@remote_host:remote_file

यदि आप एक पूरी निर्देशिका की प्रतिलिपि बनाना चाहते हैं, तो आपको आवश्यकता होगी -r। के बारे में सोचो scpके रूप में की तरह cpहै, सिवाय इसके कि आप के साथ एक फ़ाइल निर्दिष्ट कर सकते हैंuser@remote_host:file -साथ सिर्फ स्थानीय फ़ाइलों ।

संपादित करें: जैसा कि एक टिप्पणी में कहा गया है, यदि स्थानीय और दूरस्थ होस्ट पर उपयोगकर्ता नाम समान हैं, तो उपयोगकर्ता को दूरस्थ फ़ाइल निर्दिष्ट करते समय छोड़ा जा सकता है।


2
ध्यान दें कि यदि उपयोगकर्ता दूरस्थ होस्ट और स्थानीय होस्ट पर समान है, तो उपयोगकर्ता नाम छोड़ा जा सकता है: scp hello.c myserver.net:~/projects/
strager

हां, सही है, मैं इस बारे में एक नोट जोड़ूंगा। मैंने उपयोगकर्ता को शामिल किया क्योंकि तब मैंने जो उदाहरण दिए वे हमेशा काम करेंगे। :)
लेमनिस्का

Im इस पर एक हार्डटाइम कर रहा है .. क्या यह सही है। scp C: \ filename.txt server1 @ server2: home
Vincent

कृपया "डोनलोड" और "अपलोड" पर बोल्ड फ़ॉर्मेटिंग जोड़ें।
kursus

2
"स्वाभाविक रूप से" (मैं स्वाभाविक रूप से कहता हूं क्योंकि मैंने इस पर केवल 15 मिनट बर्बाद किए हैं) आपको स्थानीय "डाउनलोड" करने का प्रयास करते समय दूरस्थ होस्ट से जुड़ा नहीं होना चाहिए, क्योंकि यदि आप दूरस्थ उदाहरण से कोड निष्पादित कर रहे हैं, तो "स्थानीय" होगा यदि आप देखते हैं कि मुझे क्या मतलब है, तो "दूरस्थ" के रूप में व्याख्या की जाएगी। तो पहले ssh मत चलाओ।
पैट्रिक टीटी

164

यदि आपकी डेस्कटॉप मशीन से / के लिए कॉपी किया जा रहा है, तो WinSCP का उपयोग करें, या यदि लिनक्स पर, Nautilus कनेक्ट सर्वर के माध्यम से SCP का समर्थन करता है।

scp केवल sshd चलाने वाली मशीन में फ़ाइलों को कॉपी कर सकता है, इसलिए आपको जिस पर आप scp चला रहे हैं, उससे दूरस्थ मशीन पर क्लाइंट सॉफ़्टवेयर को चलाने की आवश्यकता है।

यदि कमांड लाइन पर कॉपी किया जाता है, तो उपयोग करें:

# copy from local machine to remote machine
scp localfile user@host:/path/to/whereyouwant/thefile

या

# copy from remote machine to local machine
scp user@host:/path/to/remotefile localfile

4
आप आदमी हो। मैंने सर्वर साइड पर किसी अतिरिक्त इंस्टॉलेशन के बिना 10 सेकंड से भी कम समय में एक ब्लॉग तैनात किया है!
PM

2
यह पूरी तरह से काम किया। मैंने cmd में msysgit का इस्तेमाल किया क्योंकि इसमें scp और ssh दोनों हैं।
इब्न सईद

3
यह पूरी तरह से काम किया। मैंने scp * user @ host: / path / to / where
Bastin Robin

3
वह शीर्ष उत्तर होना चाहिए।
गसमारस

3
WinSCP सुझाव के लिए धन्यवाद। उन सभी आदेशों को मैन्युअल रूप से लिखने की कोशिश करने से आसान ...
ब्रायन लीशमैन

23

आपको स्रोत और गंतव्य दोनों निर्दिष्ट करने की आवश्यकता है, और यदि आप निर्देशिकाओं की प्रतिलिपि बनाना चाहते हैं, तो आपको -r विकल्प को देखना चाहिए।

तो अपने वर्तमान निर्देशिका के लिए दूरस्थ सर्वर से / घर / उपयोगकर्ता / जो कुछ भी पुन: कॉपी करने के लिए:

scp -pr user@remoteserver:whatever .

19

नहीं, आपको अभी भी जरूरत है scp [from] [to] भी जिस तरह भी आप कॉपी कर रहे हैं

अंतर है, आप की जरूरत है scp -p server:serverpath localpath


8
-p का उद्देश्य क्या है?
किंजी

1
से man scp: मूल फ़ाइल से संशोधन समय, पहुंच समय और मोड को संरक्षित करता है।
pjmil

4
स्पष्ट -pहोना केवल यहाँ शामिल है क्योंकि ओपी ने अपने मूल प्रश्न में ध्वज को शामिल किया था। यह किसी भी तरह से उत्तर के लिए प्रासंगिक नहीं है
गैरेथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.