रिमोट सर्वर से किसी स्थानीय मशीन में फाइल कॉपी कैसे करें?


238

मेरे टर्मिनल शेल में, मैंने एक दूरस्थ सर्वर में ssh'ed किया है, और मुझे cdवह निर्देशिका चाहिए जो मुझे चाहिए।

अब इस निर्देशिका में, एक फ़ाइल है जिसे tableमैं अपने स्थानीय मशीन पर कॉपी करना चाहता हूं /home/me/Desktop

मैं यह कैसे कर सकता हूँ?

मैंने कोशिश की, scp table /home/me/Desktopलेकिन इसने ऐसी किसी फ़ाइल या निर्देशिका के बारे में कोई त्रुटि दी।

क्या किसी को भी यह करना आता है?


यदि आप अपने आप को अक्सर scp के साथ कॉपी करते हुए पाते हैं, तो आप अपने फ़ाइल ब्राउज़र में दूरस्थ निर्देशिका को माउंट कर सकते हैं और ड्रैग-एंड-ड्रॉप कर सकते हैं। मेरे Ubuntu 15 होस्ट पर, यह मेनू बार "गो"> "एन्टर लोकेशन"> के अंतर्गत है debian@10.42.4.66:/home/debian। वैकल्पिक रूप से, कोई sshfsमेजबान पर दूरस्थ मशीन के फाइल सिस्टम को माउंट करने के लिए उपयोग कर सकता है । लेकिन वह सेटअप थोड़ा अधिक शामिल है।
उत्तलमार्टियन

दे दो rsyncएक कोशिश। यह स्थानीय और दूरस्थ प्रतियों के लिए बहुत अच्छा है, आपको कॉपी प्रगति आदि देता है। एक उदाहरण
साकिन

जवाबों:


380

इसके लिए सिंटैक्स scpहै:

यदि आप उस कंप्यूटर पर हैं जिससे आप दूरस्थ कंप्यूटर पर फ़ाइल भेजना चाहते हैं:

scp /file/to/send username@remote:/where/to/put

यहां remoteFQDN या IP पता हो सकता है।

दूसरी ओर यदि आप कंप्यूटर पर हैं तो दूरस्थ कंप्यूटर से फ़ाइल प्राप्त करना चाहते हैं:

scp username@remote:/file/to/send /where/to/put

scp दो दूरस्थ होस्ट के बीच फाइल भी भेज सकते हैं:

scp username@remote_1:/file/to/send username@remote_2:/where/to/put

तो मूल वाक्यविन्यास है:

scp username@source:/location/to/file username@destination:/where/to/put

man scpइस पर अधिक विचार प्राप्त करने के लिए आप पढ़ सकते हैं ।


4
यदि मैं कई फ़ाइलों की प्रतिलिपि बनाना चाहता हूं तो क्या होगा? मैंने एक स्थान जोड़ा और बस /file/to/sendअपने भयानक उत्तर के लिए एक और धन्यवाद का उपयोग किया !
कैमडिक्सन जूल

6
scp -rपुन: कॉपी करेगा।
हेनरी

क्या मैं अपने वीएम के लिए नेटवर्क से फ़ाइलों को कॉपी करना चाहता हूं ...
स्कैप

2
अच्छे उत्तर के लिए @heemayl +1। उस मामले में इसे जोड़ने के लिए सोचा कि यह एक सुरक्षित कनेक्शन है (जिसे प्रमाणीकरण की आवश्यकता है) आप निम्नलिखित का उपयोग कर सकते हैं (स्थानीय से दूरस्थ फ़ाइल की प्रतिलिपि बनाने के लिए): scp -i mykey.pem somefile.txt root@remotehost.ip.address : / कुछ / फोल्डर / इन / रिमोट
गाइ अवराम

1
scp -P 123कस्टम पोर्ट निर्दिष्ट करने के लिए उपयोग करें
aexl

14

आप rsyncएक विकल्प के रूप में उपयोग कर सकते हैं । यह मुख्य रूप से फ़ाइलों को सिंक करने के लिए है .. लेकिन आप इसे इस उद्देश्य के लिए भी उपयोग कर सकते हैं।

rsync -avzh --stats --progress remoteuser@remoteip  localpath 

ssh विकल्प जोड़ने के लिए:

rsync -e "ssh -P $port_value" remoteuser@remoteip  localpath

--progressऔर --statsस्थानांतरण के वास्तविक समय प्रदर्शन के लिए उपयोगी हैं।


12
scp root@10.240.179.4:/root/Jmeter/reports.jtl Downloads/

4
मुझे इस तरह का जवाब पसंद है।
xtluo

8
scp username@ipaddress:pathtofile localsystempath

scp sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .

यदि आपका पोर्ट के साथ उपयोग कर रहा है:

scp -Pportnumber username@ipaddress:pathtofile localsystempath 

scp -P2233 sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .

यह फ़ाइल को उसी दूरस्थ निर्देशिका में कॉपी कर देगा।
मैक्स युडिन

3

यदि आप पूरी तरह से नेटवर्क में सभी पर भरोसा करते हैं और आप गंतव्य मशीन के एक पोर्ट को सीधे कनेक्ट कर सकते हैं, तो आप netcat का उपयोग कर सकते हैं nc:।

मान लीजिए कि गंतव्य मशीन का आईपी पता 192.168.1.123 है

गंतव्य रन पर:

nc -l -p 7777 0.0.0.0 | tar zxvf - -C dest_dir

आप एक अलग पोर्ट चुन सकते हैं, और अपने इंटरफेस के दूसरे आईपी से भी बंध सकते हैं, 0.0.0.0 सभी इंटरफेस पर बस पकड़ता है।

स्रोत चलाने पर:

tar zxcf - filename | nc 192.168.1.123 7777

IMHO, यह डिजिटल नेटवर्क का उपयोग करके एक कंप्यूटर से दूसरे कंप्यूटर पर फ़ाइल भेजने का सबसे तेज़ संभव तरीका है।

तर्कों और कमांड लाइन विकल्पों के विभिन्न संस्करणों के बीच थोड़ा बदलाव हो सकता है ncऔर tarयह निश्चित रूप से हाल के लिनक्स वितरण के साथ काम करेगा।


2

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

scp -r root@178.62.54.83: ~ / folderinremoteuserdir ~ / folderinlocaluserdir

ध्यान दें ~ / जिसे मैं अक्सर भूल जाता हूँ ...

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