मैं एक बहुत बड़ी फ़ाइल छवि फ़ाइल (बस कुछ पिक्सेल अंतर) के लिए एक मामूली बदलाव कर रहा हूं, जो नेटवर्क पर स्थानांतरित होने में लंबा समय लेता है।
क्या rsync के लिए फ़ाइल में अंतर की पहचान करने और नेटवर्क पर केवल छोटे अंतर को भेजने का कोई तरीका है?
मैं एक बहुत बड़ी फ़ाइल छवि फ़ाइल (बस कुछ पिक्सेल अंतर) के लिए एक मामूली बदलाव कर रहा हूं, जो नेटवर्क पर स्थानांतरित होने में लंबा समय लेता है।
क्या rsync के लिए फ़ाइल में अंतर की पहचान करने और नेटवर्क पर केवल छोटे अंतर को भेजने का कोई तरीका है?
जवाबों:
rsync
डेल्टा-ट्रांसफर एल्गोरिथ्म डिफ़ॉल्ट रूप से ऐसा करता है। कोटिंग rsync मैनपेज :
विवरण
Rsync एक तेज़ और असाधारण रूप से बहुमुखी फ़ाइल कॉपी टूल है। यह किसी भी दूरस्थ शेल पर, या एक दूरस्थ rsync डेमॉन से / दूसरे होस्ट को स्थानीय रूप से / से कॉपी कर सकता है। यह बड़ी संख्या में विकल्प प्रदान करता है जो इसके व्यवहार के हर पहलू को नियंत्रित करते हैं और कॉपी किए जाने वाली फ़ाइलों के सेट के बहुत लचीले विनिर्देशन की अनुमति देते हैं। यह अपने डेल्टा-ट्रांसफर एल्गोरिथ्म के लिए प्रसिद्ध है, जो गंतव्य पर केवल स्रोत फ़ाइलों और मौजूदा फ़ाइलों के बीच अंतर भेजकर नेटवर्क पर भेजे गए डेटा की मात्रा को कम करता है । Rsync का व्यापक रूप से बैकअप और मिररिंग के लिए और रोजमर्रा के उपयोग के लिए एक बेहतर प्रतिलिपि कमांड के रूप में उपयोग किया जाता है।
यदि आप इसे अक्षम करना चाहते हैं, तो आपको -W
या --whole-file
विकल्प का उपयोग करना होगा ।
-W, --whole- फ़ाइल
यह विकल्प rsync के डेल्टा-ट्रांसफर एल्गोरिथ्म को अक्षम कर देता है, जिसके कारण सभी हस्तांतरित फ़ाइलें पूरी भेजी जा सकती हैं। यदि यह स्रोत और गंतव्य मशीनों के बीच बैंडविड्थ डिस्क से बैंडविड्थ से अधिक है (खासकर जब "डिस्क" वास्तव में एक नेटवर्क फाइल सिस्टम है) तो ट्रांसफर तेजी से हो सकता है। यह तब डिफ़ॉल्ट होता है जब स्रोत और गंतव्य दोनों को स्थानीय पथ के रूप में निर्दिष्ट किया जाता है, लेकिन केवल अगर कोई बैच-लेखन विकल्प प्रभाव में नहीं है।
यदि आप वास्तव में जानते हैं कि आपकी फ़ाइल ने कितना परिवर्तन किया है, तो आप अपने डेल्टा ब्लॉक आकार को ट्यून करके इस डेल्टा स्थानांतरण व्यवहार को भी अनुकूलित कर सकते हैं:
-B, --block-size = BLOCKSIZE
यह rsync के डेल्टा-स्थानांतरण एल्गोरिथ्म में प्रयुक्त ब्लॉक आकार को एक निश्चित मूल्य पर मजबूर करता है। यह सामान्य रूप से अद्यतन की जा रही प्रत्येक फ़ाइल के आकार के आधार पर चुना जाता है। विवरण के लिए तकनीकी रिपोर्ट देखें।
और यदि आप स्वयं एल्गोरिथ्म के बारे में अधिक जानकारी चाहते हैं, तो आप इसे यहां पा सकते हैं: रुपीस एल्गोरिथ्म
rsync
डिफ़ॉल्ट रूप से इस तरह व्यवहार करता है। जब तक कि मामूली परिवर्तन फ़ाइल में एक छोटा बदलाव है, और फ़ाइल पहले से ही समरूप संस्करणों में लिंक के दोनों किनारों पर मौजूद है, हस्तांतरित डेटा कुल फ़ाइल आकार से बहुत कम होना चाहिए। मैन पेज में पहले पैराग्राफ से: "यह अपने डेल्टा-ट्रांसफर एल्गोरिथ्म के लिए प्रसिद्ध है, जो नेटवर्क पर भेजे गए डेटा की मात्रा को केवल स्रोत फ़ाइलों और गंतव्य में मौजूदा फ़ाइलों के बीच अंतर भेजकर कम करता है।"