क्या rsync के बजाय कभी भी scp का उपयोग करने का कोई कारण है?


61

क्या scpइसके बजाय उपयोग करने का कोई कारण है rsync? मैं scpकभी भी फिर से उपयोग करने का कोई कारण नहीं देख सकता , rsyncवह सब कुछ करता है जो scpअधिक सुरक्षा के साथ करता है (सीमलिंक आदि को संरक्षित कर सकता है)।


6
संक्षिप्त उत्तर: सं। स्कैप कभी भी हानिकारक नहीं होता है
शादुर

2
@ बहादुर स्केप हानिकारक है कि यह डिफ़ॉल्ट रूप से मौजूदा लक्ष्य फ़ाइलों को ओवरराइट करता है। तो rsync, लेकिन यह कम से कम के साथ संभावित नुकसान को सीमित करने की अनुमति देता है -u
गाइल्स

3
@ गिल्स किसी भी उपकरण के रूप में, आपको यह समझना चाहिए कि यह क्या करता है और इसे सुरक्षित रूप से उपयोग करने के लिए यह कैसे करता है।
एलेक्स चैंबरलेन

8
उस संदर्भ में, नियमित रूप से cpऔर rm"हानिकारक" माना जाएगा - और यदि आप "हानिकारक" को "परिभाषित करते हैं" के रूप में "यदि मैं कुछ बेवकूफी करता हूं तो मुझे डरा सकता है", rsyncकोई कम हानिकारक नहीं है।
शादुर

1
rsyncस्थापित किए बिना सिस्टम पर , का उपयोग rsyncकरना (स्पष्ट रूप से) संभव भी नहीं है।
Kusalananda

जवाबों:


45

scp एक SSP कनेक्शन पर एक मशीन से रिमोट मशीन में फाइल कॉपी करने के लिए एक cp विधि प्रदान करता है।

rsync आपको दूरस्थ फ़ोल्डरों को सिंक करने की अनुमति देता है।

वे अलग-अलग कार्यक्रम हैं और दोनों के उपयोग हैं। scp हमेशा सुरक्षित रहता है, जबकि rsync को सुरक्षित होने के लिए SSH पर यात्रा करनी चाहिए।


9
इसके अलावा, सुनिश्चित करें कि rsync को दूसरे छोर पर स्थापित किया जाना है।
ckhan

3
@ नहीं, यह दूसरी तरफ स्थापित किए बिना कुछ भी कॉपी नहीं कर सकता है, यह सिर्फ कम कुशल होगा।
मिकब्लोच

2
मुझे scp की सादगी पसंद है।
एलेक्स चेम्बरलेन

2
@mikebloch आप ऐसा कैसे करते हैं? क्या यह एक नई विशेषता है? बस 3.0.9 संस्करण का उपयोग करके यह कोशिश की। और इसकी शिकायत थी कि यह rsyncरिमोट पर नहीं मिल सकता है ।
एलेक्सिओस

1
@mikebloch, इसे चेकसम कम्प्यूट्स करने के लिए सर्वर पर इनस्टॉल करना होगा, जिससे सर्वर पर बहुत सारे cpu लोड जुड़ सकते हैं। यही कारण है कि अधिकांश बड़ी साइटें इसका समर्थन नहीं करती हैं, और zsyncएक विकल्प के रूप में क्यों बनाया गया था।
Psusi

19

मुख्य चीजों में से एक (जो मुझे लगता है कि कोई भी उल्लेख नहीं किया गया है) यह है कि यदि आप बड़ी मात्रा में डेटा या फ़ाइलों को स्थानांतरित कर रहे हैं, और यदि स्थानांतरण किसी भी कारण से पूरा होने से पहले डिस्कनेक्ट हो गया है, तो rsync इसे उठाएगा जहां इसे छोड़ा था। जबकि scp नहीं है।

यदि मैं एक या दो फ़ाइल या निर्देशिकाओं को स्थानांतरित करना चाहता हूं, तो मैं scp का उपयोग करता हूं। मैं मल्टी जीबी साइज डेटा के लिए rsync पर जाता हूं।


3
यह जोड़ने के लायक हो सकता है कि --partialबड़ी फ़ाइलों को स्थानांतरित करते समय ध्वज उपयोगी हो। rsyncउस फ़ाइल को फिर से शुरू करने के बजाय फ़ाइल के भीतर छोड़ दिया है, जहां वह उठाएगा।
फ्लॉप

जब तक @Flup उल्लिखित rsync आपके पास फिर से शुरू करने के लिए किसी भी फाइल-इन-ट्रांजिट को तब तक नहीं छोड़ेगा जब तक आप - विकल्प विकल्प का उपयोग नहीं करते। ये फाइलें डिफ़ॉल्ट रूप से लक्ष्य निर्देशिका में छिपी हुई हैं। आप इन सभी फ़ाइलों को एक ही डायरेक्टरी में डालने के लिए --partial-dir का उपयोग कर सकते हैं।
लेस्टर चेउंग

खैर, rsync -vP username@host:/path/to/file .यह भी करेंगे। Stackoverflow पर यह उत्तर देखें
देवेश सैनी

9

rsync : स्थानान्तरण डेल्टा (इसके डेल्टा स्थानांतरण एल्गोरिथम का उपयोग करके ) के बीच:

  1. स्थानीय और दूरस्थ मेजबान

scp : पूरी फाइलों को बीच में स्थानांतरित करता है :

  1. स्थानीय और दूरस्थ मेजबान
  2. दूरस्थ और दूरस्थ मेजबान

सारांश: scpदो दूरस्थ होस्टों के बीच फ़ाइलों को स्थानांतरित कर सकता है जबकि rsyncयह समर्थन नहीं करता है।


rsync दो दूरस्थ होस्ट के बीच फ़ाइलों को स्थानांतरित कर सकता है। वास्तव में, rsync a host:bके बराबर है scp a host:b
ब्रांडीजी

यही मैंने लिखा है, rsync स्थानीय और दूरदराज के मेजबानों के बीच डेल्टास को स्थानांतरित कर सकता है, लेकिन एसपीपी सिर्फ यहीं तक सीमित नहीं है, यह दो दूरस्थ मेजबान के बीच डेल्टा को स्थानांतरित कर सकता है। @brandizzi
देवेश सैनी

2

वेबहॉस्टिंग टॉक में उपयोगकर्ता क्रिस लिखते हैं:

rsyncप्रत्येक छोर पर फ़ाइलों की तुलना करता है और बदली हुई फ़ाइलों के केवल परिवर्तित भागों को स्थानांतरित करता है। जब आप पहली बार फ़ाइलों को स्थानांतरित करते हैं तो यह बहुत अधिक व्यवहार करता है scp, लेकिन दूसरे हस्तांतरण के लिए, जहां अधिकांश फाइलें अपरिवर्तित होती हैं, यह डेटा की तुलना में बहुत कम धक्का देगा scp। यह विफल तबादलों को फिर से शुरू करने का एक सुविधाजनक तरीका है - आप बस उसी आदेश को फिर से जारी करते हैं और इसे उठाएगा जहां यह समय से पहले छोड़ दिया था, जबकि scpखरोंच से फिर से शुरू होगा।


0

scpयह कम तर्कों के रूप में उपयोग करने के लिए सरल है। rsyncअगर मैं केवल एक फ़ाइल को स्थानांतरित करता हूं तो मैं इसके बजाय myselv को scp का उपयोग करके पकड़ता हूं। संभवतः मैं आलसी को rsync ... को परिभाषित करने के लिए आलसी हूं ... ;-)


1
हम्म, ऐसा क्यों है? rsync a host:bके बराबर है scp a host:b, तर्कों की संख्या।
मिकब्लोच

1
@mikebloch दो अक्षर टाइप करने के लिए अधिक ... ;-) अतीत में मुझे उचित परिणाम प्राप्त करने के लिए "-e ssh -a" की आपूर्ति करनी थी। अब जब "-e ssh" डिफ़ॉल्ट है तो यह एक अलग खेल हो सकता है।
निल्स

0

पर @tomrunia को क्रेडिट https://gist.github.com/KartikTalwar/4393116

rsync -aHAXxv --numeric-ids --delete --progress \
  -e "ssh -T -c aes128-gcm@openssh.com -o Compression=no -x" \
  [source_directory] user@hostname:[target_directory]/

पर ध्यान दें --delete, उसका उपयोग नहीं करते आप गंतव्य dirs में बाहरी फ़ाइलें रखना चाहते हैं

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