एक्सटर्नल ड्राइव के बैकअप के लिए रु


17

मैं अपने घर में कंप्यूटर का बैकअप लेने के लिए एक बाहरी हार्ड ड्राइव खरीद रहा हूं (आखिरकार !!)। मैं rsync का उपयोग करने की उम्मीद कर रहा हूं। मैंने एक उदाहरण देखा है जो करता है (या ऐसा लगता है) बिल्कुल वही जो मैं चाहता हूं। कुछ इस तरह:

rsync -aE --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

हालाँकि, जब rsync दस्तावेज़ीकरण और उदाहरणों आदि को देखते हैं, तो चीजें MUCH की तुलना में अधिक जटिल लगने लगीं। नेटवर्किंग और डेमन और शब्दजाल, ओह माय!

मुझे लगता है कि जब तक मैं सिर्फ एक कंप्यूटर से फायरवायर-कनेक्टेड बाहरी ड्राइव पर rsyncing कर रहा हूं, उस सामान में से कोई भी आवश्यक नहीं है। क्या मैं ऐसा मानने में गलत हूँ? क्या चीजें वास्तव में उस सहज आदेश से अधिक जटिल होने जा रही हैं?


जवाबों:


10

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


2
s / हालाँकि / सौभाग्य से / जब फाइलें स्थानीय होती हैं, दोनों को पढ़ना और दोनों के हिस्सों के साथ नया लिखने के लिए सभी अलग-अलग जादू करना (उन्हें फिर से पढ़ना) केवल पढ़ने के स्रोत, लेखन गंतव्य की तुलना में बहुत अधिक काम है।
जेवियर

नहीं पता था कि मुझे अपने उत्तर में मिल जाना चाहिए। मैं इसे अभी जोड़ दूँगा।
kbyrd

31

मैं निम्नलिखित झंडे के साथ rsync का उपयोग 'ग्लोप' और 'ट्रंक' और 'v' के रूप में यादगार रूप से करता हूं।

rsync -gloptrunc $srcdir $dstdir

एक संक्षिप्त गाइड:

  • जी - समूह के स्वामित्व की जानकारी को संरक्षित करना
  • l - सहानुभूति के रूप में सहानुभूति की प्रतिलिपि बनाएँ
  • ओ - मालिक की जानकारी को संरक्षित करें
  • p - अनुमतियाँ संरक्षित करें
  • टी - टाइमस्टैम्प संरक्षित करते हैं
  • आर - निर्देशिका के माध्यम से पुनरावृत्ति
  • यू - अपडेट, किसी भी नई फ़ाइलों को छोड़ दें
  • [एन] - नहीं, ऐसा न करें, इसके बजाय एक सूखी रन करें
  • सी - चेकसम, जब संभव हो तो फ़ाइल ब्लॉक पर चेकसम का प्रयास करें (*)
    ध्यान दें: स्थानीय फाइल सिस्टम पर, यह ओवरराइड हो जाता है और इसके बजाय संपूर्ण फ़ाइलों की प्रतिलिपि बनाई जाती है।
  • v - क्रिया

मैं हमेशा यह सुनिश्चित करने के लिए ऊपर चला जाता हूं कि यह काम करता है, फिर 'n' ध्वज को हटा दें जो एक बार मैं परिणामों से खुश हूं।

उपरोक्त संयोजनों की मुख्य विशेषताएं:

  • मैं इसे दो (या अधिक) सर्वरों के बीच बीओटीएच दिशाओं में चलाता हूं, इस प्रकार बीओटीएच दिशाओं में सिंक कर रहा हूं। आप जो भी महसूस करते हैं, उस समय आप मास्टर हैं।
  • यह या तो मास्टर होने की अनुमति देता है, महत्वपूर्ण चेतावनी के साथ कि यदि आप कुछ हटाना चाहते हैं, तो आपको इसे दोनों पर हटाना होगा यह सुनिश्चित करने के लिए कि यह वास्तव में चला गया है, अन्यथा यह वापस आता है।

मैं इसे दो मशीनों को सिंक में रखने के लिए, या सबडिर को सिंक में रखने के लिए उपयोग करता हूं (जैसे USB ड्राइव पर बैकअप लेना)।

जैसा कि पहले कहा गया था कि अन्य पोस्ट में से एक, 'चेकसम' वास्तव में जबरदस्ती बंद किया जा सकता है यदि आप स्थानीय ड्राइव से काम कर रहे हैं।

कुछ दुर्लभ उदाहरणों में, मुझे दूरस्थ मशीनों में लॉगिन खातों में परिवर्तन, पोर्ट बदलने, और यहां तक ​​कि यह निर्दिष्ट करना होगा कि दूरस्थ होस्ट पर 'rsync' कहाँ रहता है ... लेकिन वे सीधे आपके लिए लागू नहीं होते हैं। सवाल।


3
क्या उपरोक्त सभी को rsync करने के लिए -a ध्वज नहीं है?
रोरी

2
मैं 'मेटा' झंडे का उपयोग करने का एक बड़ा प्रशंसक नहीं हूं, जब मुझे नहीं पता कि वे क्या करते हैं। Rsync के लिए मानदंड यह दर्शाता है कि मेरे बॉक्स पर वास्तव में '-a' है, जो 'u' और 'v' को छोड़ता है, लेकिन इसमें 'D' शामिल है। उनमें से, ऐसा लगता है कि, मेरे लिए, 'यू' का जोड़ एकमात्र महत्वपूर्ण अंतर है।
ericslaw

मैं इसे द्वि-दिशात्मक रूप से कॉपी करने के बजाय स्रोत से गंतव्य तक दर्पण के लिए मजबूर कर सकता हूं (गंतव्य में कुछ भी नहीं हटाना है)?
गेब्रियल स्टेपल्स

1
लगता है कि आपको उपयोग करने की आवश्यकता होगी rsync -gloptrunc --delete --delete-excluded $srcdir $dstdir--deleteगंतव्य है कि स्रोत में नहीं है में कुछ भी नष्ट करने के लिए कहते हैं, और --delete-excludedभी गंतव्य जो सामान्य रूप से नहीं पता लगाया या कॉपी किया जाएगा में बाहर रखा फाइलों को डिलीट करना कहते हैं। यदि आप उपयोग करते हैं --delete-excluded, तो तकनीकी रूप से आपको भी उपयोग करने की आवश्यकता नहीं है --delete, लेकिन फिर भी उन दोनों का उपयोग करना ठीक है। विवरण यहाँ आदमी पृष्ठों में हैं: linux.die.net/man/1/rsync
गेब्रियल स्टेपल्स

नोट: सामान्य rsync उपयोग के लिए मैंने इस ट्यूटोरियल को अब अपने लिए भी लिखा है, इसलिए मैं इसे आवश्यकतानुसार संदर्भित कर सकता हूं: rsync का उपयोग कैसे करें
गेब्रियल स्टेपल्स

4

इसमें से कोई भी आवश्यक नहीं है, आप rsync का उपयोग बिना किसी डेमॉन या अन्य किसी भी प्रकार के कॉन्फ़िगरेशन के ठीक कर सकते हैं!

बस rsync कमांड का उपयोग करें और आप जाने के लिए अच्छे हैं।


2

अपने rsync कमांड में पथ को देखते हुए, क्या मैं मैक ओएस एक्स का उपयोग करने की सोच रहा हूं?

व्यक्तिगत रूप से, मैं टाइम मशीन (यदि आप तेंदुए का उपयोग कर रहे हैं), या कार्बन कॉपी क्लोनर ( http://www.bombich.com/software/ccc.html ) का उपयोग करने का विकल्प चुनूंगा जो rsync का उपयोग करता है।

अपनी खुद की स्क्रिप्ट को सही करने की कोशिश करने से ज्यादा आसान है। एक फायदा यह है कि टाइम मशीन और CCC दोनों आपको वृद्धिशील बैकअप देंगे।


2

आपके द्वारा उपयोग किया गया उदाहरण ऐसा लगता है कि यह बैकअप के लिए ठीक काम करेगा।

Rsync का उपयोग करते समय एक बात जिस पर आप विचार करना चाह सकते हैं, वह है - thelink- भाग्य विकल्प का उपयोग करना। यह आपको कई बैकअप रखने देता है, लेकिन किसी भी अपरिवर्तित फ़ाइलों के लिए हार्ड लिंक का उपयोग करता है, प्रभावी रूप से सभी बैकअप एक वृद्धिशील की जगह लेता है। एक उदाहरण का उपयोग होगा:

rsync -aE --link-dest=/mnt/external_disk/backup_20090612 dir_to_backup \
    /mnt/external_disk/backup_20090613

यह मानता है कि आपके पास 12 जून के लिए एक दिनांकित बैकअप है और आप 13 जून को एक नया बनाना चाहते हैं। यदि आप हर फ़ाइल का प्रिंटआउट नहीं चाहते हैं तो आप -v विकल्प को छोड़ना चाहते हैं।


1
rsnapshot एक बैकअप सिस्टम है जो लिंक-डिस्ट का उपयोग करता है जैसा कि आप एक स्पेस इफ़ेक्ट तरीके से पूर्ण संस्करण बैकअप रखने के लिए वर्णन करते हैं।
रॉरी

1

यह वास्तव में इस बात पर निर्भर करता है कि आप डेटाबेस चला रहे हैं या नहीं। Rsync हर फ़ाइल का एक स्नैपशॉट लेगा, और किसी भी हस्तक्षेप लिखने को अनदेखा करेगा। यदि आप एक डेटाबेस का बैकअप लेना चाहते हैं, तो आपको rsync से पहले एक अनदेखा फ़िल्टर सेट करना और DB डंप उपकरण चलाना देखना चाहिए।


1

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


1

आपने अपने ऑपरेटिंग सिस्टम का उल्लेख नहीं किया। यह मानते हुए कि इसके * निक्स आधारित ओएस, आपकी आज्ञा अच्छी है।

हालाँकि, यदि एक या दोनों ड्राइव NTFS स्वरूपित होते हैं, तो Mobixterm / cygwin का उपयोग करके * nix या यहां तक ​​कि विंडोज से एक्सेस किया जा रहा है, तो rsync वृद्धिशील कार्यक्षमता के साथ अच्छा काम नहीं करेगा rsync -a (archive flag)

यदि NTFS ड्राइव शामिल है, तो आप उपयोग कर सकते हैं:

rsync -rvh --size-only --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

Windows पर rsync कार्यक्षमता रखने के लिए Mobaxterm ssh क्लाइंट डाउनलोड करें।

NTFS ड्राइव के साथ rsync का उपयोग करने के बारे में अधिक जानकारी यहाँ दी गई है


0

मैंने बैकअप के लिए rsync का उपयोग करने की कोशिश की, लेकिन यह गड़बड़ हो गया। rsync बैकअप के बजाय 'सिंक्रोनाइज़' करने के लिए बेहतर है। और यह बड़ी फ़ाइलों की तुलना करने के लिए हमेशा के लिए जाता है।

मैंने थोड़ा शोध किया और कई लोगों की कोशिश की (मूल रूप से ऑब-कैश खोज बैकअप से ubuntu में सभी का परीक्षण)।

अंत में मैंने ' backup2l - लो-मेंटेनेंस बैकअप / रिस्टोर टूल' को समाप्त कर लिया है , यह आसान है। मुझे योजना और रोटेशन (स्तरों में) का प्रबंधन करने का तरीका पसंद है। जब भी मेरे पास मेरी USB बाहरी ड्राइव कमांड लाइन से जुड़ी होती है तो मैं इसे चलाता हूं लेकिन आप इसे स्वचालित भी कर सकते हैं।


0

बैकअप करने के लिए dirvish का प्रयास करें। http://www.dirvish.org/
यह तथाकथित वाल्ट में rsync से हार्डलिंक का उपयोग करता है। आप अपने पुराने डंप के रूप में USB डिस्क ले जा सकते हैं। या इसे स्वचालित तरीके से सेट करें।

एक बार जब आप dirvish के विचार को समझ लेते हैं तो यह rsync की तुलना में अपने सभी विकल्पों के साथ उपयोग करने के लिए अधिक आत्मविश्वास है।


rsnapshot dirvish के समान है
रोरी

0

मुझे विंडोज आधारित कंप्यूटर के लिए एक समाधान मिल गया है: http://www.itefix.no/i2/node/10650

D: \ पार्टी की बाहरी ड्राइव K: \ को कॉपी करने के लिए

rsync -aE --delete --progress /cygdrive/d/* /cygdrive/k

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