प्रविष्टियां मैं सुरक्षित रूप से बैकअप करने से बाहर कर सकता हूं


10

मैं rsnapshot के आधार पर एक बैकअप रणनीति की योजना बना रहा हूं ।

मैं फ़ाइलों और निर्देशिकाओं को छोड़कर एक पूर्ण सिस्टम बैकअप करना चाहता हूं जो कि फिर से काम करने की व्यवस्था को बहाल करने के लिए बेकार होगा। मैंने पहले ही बाहर कर दिया:

# System:
exclude /dev/*
exclude /proc/*
exclude /sys/*
exclude /tmp/*
exclude /run/*
exclude /mnt/*
exclude /media/*
exclude /lost+found

# Application:
exclude /*.pyc
exclude /*.pyo

मुझे आश्चर्य है कि पुनर्स्थापना प्रणाली से समझौता किए बिना मैं कौन सी अन्य प्रविष्टियों को बाहर कर सकता हूं। एक "जेनेरिक" लिनक्स सिस्टम के बारे में बात करते हुए, क्या आप आगे ग्लोब एक्सटेंशन, अस्थायी निर्देशिका, कैश आदि का सुझाव दे सकते हैं, मैं सुरक्षित रूप से बाहर कर सकता हूं?

जवाबों:


11

सबसे पहले, आपको rsync के शामिल / बाहर सिंटैक्स पर थोड़ा पढ़ना चाहिए। मुझे लगता है कि आप जो करना चाहते हैं वह **ग्लब्स की तुलना में *ग्लब्स का उपयोग करके बेहतर है । ( **किसी भी संख्या में प्रविष्टियों का *विस्तार होता है , जबकि केवल एक प्रविष्टि का विस्तार संभवतया कई निर्देशिका प्रविष्टियों से मेल खाता है । विवरण शामिल / बहिष्कृत पैटर्न नियमों केman rsync तहत हैं ।)

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

तो मेरा rsnapshot.conf वास्तव में बताता है (rsnapshot की कॉन्फ़िगरेशन फ़ाइल पार्सर को खुश करने के लिए टैब के साथ):

interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./

और बहुत कम। हां, इसका मतलब है कि मैं कड़ाई से आवश्यकता की तुलना में थोड़ी अधिक नकल कर सकता हूं, लेकिन यह सुनिश्चित करता है कि एफरमल की नकल के रूप में कुछ भी इरादा नहीं है। Rsync के हार्डलिंक-टू-डुप्लिकेट व्यवहार का उपयोग करते हुए rsnapshot के कारण, इसके लिए एकमात्र वास्तविक लागत पहले रन के दौरान है; उसके बाद, यह मानते हुए कि आपके पास एक उचित आकार (आपके कुल डेटा सेट आकार की तुलना में) बैकअप लक्ष्य स्थान है, यह या तो समय या डिस्क स्थान में बहुत कम अतिरिक्त लेता है। मैं / बैकअप की सामग्री को बाहर करता हूं क्योंकि मैं बैकअप लक्ष्य फ़ाइल सिस्टम को माउंट करता हूं; इसे छोड़कर बैकअप को कॉपी करने की स्थिति में नहीं आएगा। हालांकि, सादगी के लिए अगर मुझे कभी नंगे धातु पर बहाल करने की आवश्यकता होती है, तो मैं माउंट बिंदु रखना चाहता हूं!

मेरे मामले में मैं यथोचित उपयोग नहीं कर सकता one_fs 1; मैं वर्तमान में ~ 40 फ़ाइल सिस्टम के साथ ZFS चलाता हूं। स्पष्ट रूप से उन सभी को सूचीबद्ध करना एक रखरखाव दुःस्वप्न होगा और जेडएफएस फाइल सिस्टम के साथ काम करना और भी बहुत कुछ इसमें शामिल होना चाहिए जो इसे होना चाहिए।

बहुत ज्यादा कुछ भी जिसे आप ऊपर और बाहर से ऊपर करना चाहते हैं, वैसे भी वितरण पर निर्भर करने वाला है, इसलिए यह सामान्य रूप से जवाब देने के लिए लगभग असंभव है। उसने कहा, आपको कुछ उम्मीदवारों को / var के तहत खोजने की संभावना है।


1
exclude /somepath/*इस मामले में पूरी तरह से ठीक है; यह /somepath/उम्मीद के मुताबिक हर चीज को बाहर कर देता है। आप की जरूरत नहीं है **क्योंकि जब सब कुछ /somepath/पहले से ही बाहर रखा गया है तो गहराई से देखने की जरूरत नहीं है।
मार्टिन वॉन विटिच

या बस exclude /somepathइन निर्देशिकाओं को पूरी तरह से उपयोग और अनदेखा करें - न केवल उनकी सामग्री।
फ्रैंक केल्स

4
जब आप नंगे धातु पर पुनर्स्थापित करते हैं तो @spaceknarf बढ़ते हैं, क्योंकि तब आरोह बिंदु मौजूद नहीं होता है।
बजे एक CVn

4

आप जो करने की कोशिश कर रहे हैं, उनमें से अधिकांश को शायद one_fsसेटिंग का उपयोग करके पूरा किया जा सकता है । फ़ाइल सिस्टम आप अपने बैकअप में शामिल करना चाहते सेट है, तो उस सेटिंग का उपयोग बाकी (अनदेखी करने के लिए proc, sys, dev, आदि)। मैं शामिल करूंगा /lost+foundक्योंकि वह निर्देशिका हमेशा खाली होनी चाहिए जब तक कि आपने एक दूषित फ़ाइल सिस्टम का बैकअप नहीं लिया है, उस स्थिति में आप संभवतः किसी भी चीज़ का बैकअप चाहते हैं जो fsckपुनर्प्राप्त हो। इसके अलावा, .pycऔर .pyoवास्तव में पहली जगह में रूट डायरेक्टरी में नहीं होना चाहिए, इसलिए मैं उन लाइनों को भी हटा दूंगा। /tmpऔर /var/tmpएक "जेनेरिक" प्रणाली पर केवल शेष पथ के बारे में है जिसमें डेटा होता है जिसे बैकअप से मज़बूती से बाहर रखा जा सकता है। तो शायद कुछ इस तरह की कोशिश करें:

one_fs 1

exclude /tmp/
exclude /var/tmp/

मैं वास्तव में मतलब था नहीं /*.pycऔर /*.pycलेकिन विस्तृत प्रणाली *.pycऔर *.pyo, मुझे लगता है कि तय की। मुझे यकीन नहीं है कि अगर मैं चाहूं तो कुछ भी बाहर one_fsकर 1सकता हूं, हालांकि।
पाओलो

1
क्या होगा अगर एक सिस्टम पैकेज ऐसी फ़ाइलों का उपयोग करता है?
depquid

आप सही हैं, लेकिन मुझे लगभग यकीन है कि हर फ़ाइल .py को जल्द या बाद में स्वचालित रूप से पुन: स्थापित किया जाएगा।
पाओलो

3
शायद, लेकिन मेरे सिस्टम पर ऐसी फाइलें विक्रेता संकुल द्वारा स्थापित की जाती हैं। जिसका अर्थ है कि यदि सिस्टम बैकअप से बहाल हो जाता है, तो पैकेज प्रबंधक को लगता है कि फाइलें गायब हैं। आपने "जेनेरिक" लिनक्स सिस्टम के लिए एक समाधान के बारे में पूछा, और मुझे नहीं लगता कि यह हमेशा सुरक्षित है कि ऐसी फाइलें बिना किसी समस्या के खो सकती हैं।
depquid

एक बात ध्यान देने योग्य है कि मैं Q में यह कहना भूल गया कि बाइंड माउंट्स को डेटा के दोहराव से बचने के लिए बाहर रखा जाना चाहिए।
पाओलो

1

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


पैकेजों को क्यों स्थापित किया जाएगा, जिसमें सभी सिस्टम फ़ाइलों के साथ-साथ प्रोसेसिंग कॉन्फ़िगरेशन और मेटा-डेटा लिखना भी शामिल है, बस फाइलों की नकल करने की तुलना में अधिक तेज़ हो?
15

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