दूरस्थ सर्वर से स्थानीय मशीन में rsync का उपयोग करके फ़ाइलों को कॉपी करना


318

एक बार जब मैं अपने रिमोट सर्वर में ssh'd, एक मशीन से एक निर्देशिका से सभी फाइलों को स्थानीय निर्देशिका में कॉपी करने की क्या आज्ञा होगी?


4
क्योंकि आप rsyncअपने स्थानीय मशीन से सीधे कर सकते हैं।
Johnsyweb

2
ओह ... हाँ मैं कर सकता हूँ। मुझे अब अन्य उत्तर दिखाई दे रहे हैं। धन्यवाद।
markstewie

17
एक अच्छे उत्तर के साथ (वेब) विकास के लिए यह सामान्य कार्य है। मैं नहीं देखता कि यह अभी भी क्यों बंद है।
d.raev

6
मुझे लगता है कि @ d.raev इस तथ्य का उल्लेख कर रहे थे कि प्रश्न को विषय के रूप में बंद कर दिया गया था (यदि मैं सही ढंग से याद करता हूं तो मैंने इस प्रश्न के लिए सुपरयूजर में माइग्रेट किया था, जहां मुझे लगता है कि यह बेहतर है) इसके बजाय कोई स्वीकार्य उत्तर नहीं था। । फिर भी ... इस समय के बाद मेरे जवाब को स्वीकार करना अच्छा था। :-)
जॉन्सवेब

3
@markstewie कोई बुरी भावना नहीं है, यह एक अच्छा सवाल है और इसने मेरी मदद की (कई अन्य लोगों को भी लगता है) लेकिन यह "बंद" इसे योग्य नहीं लगता है इसलिए मैं इस पर कुछ ध्यान लाने के लिए तैयार हूं।
d.raev

जवाबों:


575

अपनी स्थानीय मशीन से:

rsync -chavzP --stats user@remote.host:/path/to/copy /path/to/local/storage

एक गैर मानक ssh पोर्ट के साथ अपने स्थानीय मशीन से:

rsync -chavzP -e "ssh -p $portNumber" user@remote.host:/path/to/copy /local/path

या दूरस्थ मेजबान से, आप वास्तव में इस तरह से काम करना चाहते हैं और आपकी स्थानीय मशीन एसएसएच पर सुन रही है:

rsync -chavzP --stats /path/to/copy user@host.remoted.from:/path/to/local/storage

man rsyncमेरे सामान्य स्विच के स्पष्टीकरण के लिए देखें ।


255
: आदेश की एक व्याख्या explainshell.com/...
beefsack

118
वाह कि व्याख्या साइट बहुत बढ़िया है।
गोसुकीवि

2
@cmcdragonkai: वास्तव में, स्थानीय होस्ट को एक ssh सर्वर चलाना चाहिए और रिमोट होस्ट तक पहुँच योग्य होना चाहिए। यह एक कारण है कि मैं दूसरे पर पहला समाधान पसंद करता हूं।
जॉनसीवेब

16
अनुगामी स्लैश के साथ rsyncing जब सावधान रहें। Johnnysweb द्वारा दी गई कमांड एक निर्देशिका बनाएगी जिसे कॉपी कहा जाएगा /path/to/local/storage। ऐसे ही /path/to/local/storage/copy। अगर ऐसा है जो आप महान चाहते हैं। हालाँकि एक अधिक सामान्य परिदृश्य यह है कि आप दूरस्थ निर्देशिका की सामग्री को अपने स्थानीय में निर्देशिका में कॉपी करना चाहते हैं। तब आप ऐसा करेंगे /path/to/copy/जो /path/to/local/storageस्थानीय कॉपी निर्देशिका बनाए बिना सामग्री को निर्देशिका के अंदर रख देगा ।
chap

16
मैं यहाँ एक rsync आदेश के लिए आया था और मैं के साथ भाग आया था explainshell.com । धन्यवाद @beefsack!
साइप्रस फॉज

50

यदि आपके पास SSH पहुंच है, तो आपको पहले SSH की आवश्यकता नहीं है और फिर प्रतिलिपि करें, बस गंतव्य से सुरक्षित प्रतिलिपि (SCP) का उपयोग करें

scp user@host:/path/file /localpath/file

वाइल्ड कार्ड वर्ण समर्थित हैं, इसलिए

scp user@host:/path/folder/* /localpath/folder

उस फ़ोल्डर में सभी दूरस्थ फ़ाइलों की प्रतिलिपि बनाएँगे। यदि एक से अधिक निर्देशिकाओं की प्रतिलिपि बनाई जा रही है।

नोट -r सभी उप-फ़ोल्डर और सामग्री को भी कॉपी करेगा।


6
scpबजाय उपयोग क्यों rsync? इसके अलावा, देखें कि आपका शेल विस्तार करने की कोशिश नहीं करता है user@host:/path/folder/*, शायद सिंगल कोट्स ( ') का उपयोग करके ।
जॉन्सवेब

मुझे गंतव्य से उपयोग करने में आसानी से scp मिल जाता है .... अनिवार्य रूप से यह ssh पर फाइल कॉपी है, लेकिन पहले ssh कनेक्शन को स्थापित करने के लिए।
4

8
मुझे पता है कि क्या scpहै, यह मेरा सवाल नहीं था। आपने उपयोग क्यों नहीं किया rsync? यह वही है जो सवाल पूछता है, एक स्थापित एसएसएच सत्र की आवश्यकता नहीं होती है और अक्सर इससे तेज और अधिक कुशल होता है scp
Johnsyweb

26
याद रखें, उन्हें कॉपी करने के बजाय scp सहानुभूति का अनुसरण करता है। इससे आपको और अधिक कॉपी करने की उम्मीद हो सकती है और आप सहानुभूति की हानि कर सकते हैं (वे सामान्य फ़ोल्डर / फ़ाइलें बन जाते हैं)।
मोंडेन

2
मोंडेन की प्रतिक्रिया ठीक यही कारण है कि मुझे यह पद मिला। आम तौर पर, मैं सब कुछ के लिए एससीपी का उपयोग करता हूं, लेकिन मुझे सर्वर से सर्वर तक अनुमतियों और सिमिलिंक को संरक्षित करने की आवश्यकता थी। इसके अलावा, गति अंतर (बीसी मेरी नौसिखिया स्वयं निश्चित रूप से पहले स्कैप्ड) विशाल था।
काइल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.