Rsync द्वारा किसी एकल फ़ाइल का स्थानांतरण फिर से शुरू करें


21

उबंटू में, मैं अपने हार्डड्राइव से एक बड़ी फ़ाइल को rsync द्वारा हटाने योग्य ड्राइव में कॉपी करना चाहता हूं। किसी कारण या अन्य के लिए, ऑपरेशन एक रन में पूरा नहीं हो सकता है। इसलिए मैं यह पता लगाने की कोशिश कर रहा हूं कि पिछली बार छोड़ी गई फ़ाइल कॉपी को फिर से शुरू करने के लिए rsync का उपयोग कैसे करें।

मैंने विकल्प का उपयोग करने की कोशिश की है - प्रांतीय या --inplace, लेकिन --progress के साथ, मैंने पाया कि rsync के साथ --partial या --inplace वास्तव में शुरुआत से शुरू होता है बजाय पिछली बार जो बचा था। मैन्युअल रूप से जल्दी rsync को रोकना और प्राप्त फ़ाइल के आकार की जांच करना भी पुष्टि करता है कि मुझे क्या मिला।

लेकिन --append के साथ, rsync पिछली बार जो बचा था उससे शुरू होता है।

मैं उलझन में हूं क्योंकि मैंने मैनपेज पर देखा था - अंतिम, पिछली बार जो कुछ बचा था उससे नकल शुरू करने के लिए संबंध। क्या कोई अंतर समझा सकता है? क्यों - प्रतिपक्ष या - एक कॉपी को फिर से शुरू करने के लिए काम नहीं करता है? क्या यह सच है कि कॉपी को फिर से शुरू करने के लिए, rsync को विकल्प के साथ काम करना पड़ता है?

इसके अलावा अगर कोई आंशिक फ़ाइल mv या cp द्वारा rsync द्वारा नहीं छोड़ी गई थी, तो क्या rsync --append सही होगा?

धन्यवाद एवं शुभकामनाएँ!


Rsync कैसे काम करता है, इस बारे में मेरी समझ सीमित है, लेकिन आपको अंतिम प्रश्न का उत्तर देने के लिए। यदि कोई cp अधूरा है, तो rsync को कॉपी को फिर से शुरू करना चाहिए। मैं मानना rsync के पास एक तरह से फाइलें हैं, जो फाइल के शुरुआती हिस्से को एक ही तरह से ढूंढती हैं, और फाइल के शेष हिस्से को कॉपी करती हैं।
Scott McClenning

जवाबों:


24

Rsync के लिए कुछ पृष्ठों को देख रहे हैं:

--append
यह rsync पर फ़ाइल को डेटा जोड़कर अद्यतन करने का कारण बनता है                 फ़ाइल का अंत, जो पहले से मौजूद डेटा को मानता है                 प्राप्त करने के पक्ष में मौजूद है की शुरुआत के साथ समान है                 भेजने की ओर फ़ाइल।

--inplace
यह विकल्प बदलता है कि rsync किसी फ़ाइल को उसके डेटा में कैसे स्थानांतरित करता है                 अद्यतन करने की आवश्यकता है: बनाने की डिफ़ॉल्ट विधि के बजाय                 फाइल की नई प्रति और जब कॉम हो तो उसे उसी जगह ले जाना                 इसके बजाय plete, rsync सीधे अपडेट किए गए डेटा को लिखते हैं                 गंतव्य फ़ाइल।

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

लगता है कि यदि फ़ाइल बहुत बड़ी है, तो आप उपयोग करना चाहेंगे --partial --append। ( --append का तात्पर्य --inplace ) यदि यह बड़ी फ़ाइल बदल जाती है, तो ड्रॉप करें --append और rsync यह सुनिश्चित करने के लिए फ़ाइल की शुरुआत की जाँच करेगा कि यह स्रोत फ़ाइल से मेल खाता है या नहीं। --inplace मुझे खतरनाक लगता है, सिवाय इसके कि अगर आप किसी बड़ी फाइल को रेनसिंज कर रहे हैं, तो आप नहीं चाहते हैं कि आरएसक्यूएन शुरुआत के हिस्से की नई अस्थायी फाइल बनाए, ट्रांसफर जारी रखें, फिर नई फाइल को डालने के लिए पुरानी फाइल को हटा दें। यदि आप एक ही फ़ाइल का उपयोग कर सकते हैं, तो स्थानांतरण तेजी से होगा, स्थानान्तरण के लिए आवश्यक डिस्क स्थान का उल्लेख नहीं करना कम होगा।

इसके अलावा, मैंने एक संपूर्ण फ़ाइल ट्रांसफर स्टैंड पॉइंट से पाया है जो एक प्रतिलिपि rsync से अधिक तेज़ है। हालाँकि, अगर मुझे किसी फाइल को अपडेट करने की जरूरत है, तो मैंने rsync फाइल को फिर से पूरी फाइल को फिर से ट्रांसफर करने की तुलना में तेजी से सिंक किया है। (जैसे मैंने ऊपर कहा है) रुपये को एक सीपी से फिर से शुरू करने में सक्षम होना चाहिए।

आशा है कि ये आपकी मदद करेगा।


1
आप इस बग रिपोर्ट पर एक नज़र डालना चाहते हैं: lists.samba.org/archive/rsync/2012-June/027615.html
Stefan Schmidt

डिफ़ॉल्ट रूप से तेज सीपी के उपयोग के बारे में अच्छी बात है, और टूटी हुई सीपी प्रक्रिया को "मरम्मत" करने के लिए rsync! नीत :)
Samuel Lampa
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.