छोटे परिवर्तनों के साथ एक बड़ी फ़ाइल का बैकअप कैसे लें?


9

यदि फ़ाइलों का एक सेट (कई जीबी बड़ा प्रत्येक) और प्रत्येक दिन थोड़ा बदल जाता है (यादृच्छिक स्थानों पर, न केवल अंत में संलग्न जानकारी), तो इसे कुशलता से कैसे कॉपी किया जा सकता है? मेरा मतलब है, इस अर्थ में कि केवल बदले गए हिस्से अपडेट किए गए हैं, न कि पूरी फाइलें। इसका मतलब यह होगा कि यहाँ कुछ Kb कॉपी करने के बीच अंतर है और कुछ GB है।


बाइनरी अंतर? मुझे लगता है कि यह एक बात है, लेकिन मुझे नहीं लगता कि diffयह होगा
बिल्ली

@ कोट: diffअंतर की रिपोर्ट करने में सक्षम हो सकता है, लेकिन यहां समस्या छोटे अंतर की नकल कर रही है।
क्वोरा फेंस

ठीक है, मैं सोच रहा था कि सिर्फ डिफरेंसेस को कॉपी करें - rsyncबेहतर है
कैट

जवाबों:


25

Rsync कार्यक्रम वास्तव में है कि नहीं करता है। आदमी पृष्ठ से:

यह अपने डेल्टा-ट्रांसफर एल्गोरिथ्म के लिए प्रसिद्ध है, जो गंतव्य पर केवल स्रोत फ़ाइलों और मौजूदा फ़ाइलों के बीच अंतर भेजकर नेटवर्क पर भेजे गए डेटा की मात्रा को कम करता है। रुपीस का व्यापक रूप से बैकअप और मिररिंग के लिए और रोजमर्रा के उपयोग के लिए एक बेहतर कॉपी कमांड के रूप में उपयोग किया जाता है।


वास्तव में, rsync वास्तव में इस उत्तर को लिखने के दौरान चल रहा है, इस मशीन पर सब कुछ मेरे फाइल सर्वर (zfs के साथ) पर बैकअप कर रहा है।
होवडाल 16

बैकअप उद्देश्यों के लिए, मैं rdiff- बैकअप ( nongnu.org/rdiff-backup ) की सिफारिश करना चाहूंगा । मैं इसे चार अलग-अलग मशीनों के बैकअप के लिए इस्तेमाल कर रहा हूं, कई सालों से, अच्छे नतीजों के साथ।
थॉमस पैड्रॉन-मैककार्थी

विकिपीडिया पर एक अच्छी व्याख्या है किrsync रोलिंग चेकसम का उपयोग करके फाइल चंक्स की तुलना कैसे की जाती है
एडम काट्ज

मैंने rsync को एक पुरानी VM हार्ड डिस्क छवि पर वापस "वापस" करने की कोशिश की, जहां केवल कुछ फ़ाइलों को बदल दिया गया है, दु: खद रूप से rsync पूरी फ़ाइल को फिर से कॉपी करने लगता है (~ 3 मिनट लेखन ~ 300MB / s)? rsync -av --progress --partial --inplace arch-test1.qcow2.bak arch-test1.qcow2
फ़ीड

8

आप शायद एक आधुनिक डिडुप्लिकेटिंग बैकअप प्रोग्राम चाहते हैं। BorgBackup की जाँच करें ।

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


5

यदि आप किसी भी तरह से IO- सीमित हैं, तो BTRFS या ZFS जैसे एक फाइलसिस्टम का उपयोग करें, जो फाइलों में अंतर खोजने के बिना सीधे वृद्धिशील बैकअप का समर्थन करता है , जैसे कि क्या rsyncकरना है।

उपयोग rsyncधीमा और बहुत IO- गहन होने जा रहा है।

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

बस Google "rsync धीमा है"। उदाहरण के लिए: rsync बहुत धीमी है (कारक 8 से 10) nfs-share से स्थानीय dir में फ़ाइलों की प्रतिलिपि बनाने पर cp की तुलना में


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