एक रनिंग लाइनोड सर्वर का बैकअप कैसे लें?


21

हम अपने डेबियन सर्वर पर हर चीज का बैकअप लेना चाहते हैं, जो दुनिया के दूसरी तरफ दूर से (लिंडोड द्वारा होस्ट), इसे बंद किए बिना चल रहा है।

यह प्रणाली शेल, ईमेल, एक्सएमपीपी / प्रोसोडी और वेब पर चल रही है, जिसमें सरल नगीनेक्स सेटअप हैं।
हम उन चीजों से संबंधित फाइलों का बैकअप लेना चाहते हैं जो सुरक्षित रहें। उदाहरण के लिए, फ़ाइलें उपयोगकर्ताओं ने अपने घर निर्देशिकाओं में संग्रहीत की हैं।

हमें मौजूदा सेटअप wrt को हर एक / आदि फ़ाइल को कॉपी करने की आवश्यकता नहीं है; इसके बजाय, कारण यह है कि हम बैक अप पहली जगह में भी कर रहे हैं, इसलिए हम इसे एक नए सेटअप में स्थानांतरित कर सकते हैं (लियोड पर अभी भी डेबियन का नया संस्करण)।

मैं देखता हूं कि लिनोड एक बैकअप सेवा प्रदान करता है। लेकिन दीर्घावधि में हमें अपने स्वयं के बैकअप की भी आवश्यकता होती है, यहाँ, यदि वे इसके अंतर्गत जाते हैं या कुछ और अजीब होता है।

यह सवाल मौजूद है कि जब मैंने अतीत में बैकअप बनाने की कोशिश की है, तो मैंने इन दोनों में से कोई एक गलती की है:

  • मैं चला गया "ठीक है, मैं बस कॉपी करूंगा /और इसके तहत सब कुछ" और फिर कुछ अजीब अनंत लूप में फंस गया क्योंकि या तो मैं जिस ड्राइव की नकल कर रहा था वह / मीडिया / बैकअप के तहत मुहिम शुरू की गई थी और यह खुद को नकल कर रहा था [obv यह विशिष्ट समस्या यहाँ लागू नहीं है क्योंकि हम rsync या इसी तरह के बैकअप के लिए जा रहे हैं] या यह कुछ "जिंदा" सामान को कॉपी करने की कोशिश कर रहा है / proc या / var में या जो भी, जैसे कभी बदलते लॉग को बनाए रखने की कोशिश कर रहा है, या
  • मैं जा चुका हूँ "ठीक है, मैं नंगे न्यूनतम को हड़प लूंगा जो हमें चाहिए ... हम्म, सभी के घर निर्देशिका, और हमारे वेब सर्वर निर्देशिका (सभी के तहत /var) और चलो /etc/ / / के तहत सभी पुराने मेलों की एक प्रति लावा और vmail "और फिर मैंने हमेशा फ़ाइल अनुमतियों या टाइमस्टैम्प्स को गड़बड़ किया है (यह सुनिश्चित करने के लिए कि मैं इस समय FAT ड्राइव पर यूनिक्स फ़ाइलों का बैकअप नहीं लेता हूं) या कुछ भूल गया (" ओह, शूट, मेरे पास / usr / में कुछ कस्टम स्क्रिप्ट थीं) स्थानीय / बिन जिसे मैंने कभी कहीं और संग्रहीत नहीं किया, मैं उन लोगों को प्राप्त करना भूल गया, लगता है कि वे अब चले गए हैं ")।

तो पूरे ड्राइव को सीधे कॉपी करने पर obv को नुकसान होता है और निर्देशिका को कॉपी करने से चुनिंदा नुकसान होते हैं। मैं जानना चाहता हूं कि यह कैसे करना है।

सर्वर फाल्ट प्रश्न एक पूर्ण बैकअप प्रणाली के लिए क्या आवश्यक है? दर्शन और अच्छी प्रथाओं को शामिल करता है, लेकिन मैं इन अधिक विशिष्ट विवरणों की तलाश कर रहा हूं:

  • मुझे कौन सी निर्देशिकाओं की प्रतिलिपि बनाने की आवश्यकता है और जो मुझे बाहर करना है (यह देखते हुए कि यह एक ऐसी प्रणाली है जो वर्तमान में चल रही है और एक विकी, XMPP चैट, ईमेल की सेवा कर रही है - प्रतिलिपि कार्य चल रहा है, जबकि नए संदेश आ रहे हैं)
  • टाइम स्टैम्प और मालिक और समूह जैसी क्या फ़ाइल विशेषताएँ मुझे प्रस्तुत करने की आवश्यकता है और मैं यह कैसे करूँ? Myself मुझे लगता है कि मैं इस आधे प्रश्न का उत्तर कुछ इस तरह से दे सकता हूं ... उम ... rsync -HXazमुझे लगता है कि हमारे लिए एक अच्छा विकल्प है? -zObv वास्तव में सवाल जो है "मैं क्या बचाऊं" से संबंधित नहीं

बहुत सारी बैकअप सलाह जो मैं देख रहा हूं, जैसे उपयोग करना dd, यह मानना ​​है कि ड्राइव अनमाउंट है और उपयोग में नहीं है। लेकिन क्या मुझे / जीवित और "कुछ" जैसी उपनिर्देशिकाओं के "जीवित" निर्देशिकाओं को बाहर करने की आवश्यकता नहीं है? और क्या है जो मुझे इस स्थिति में सोचने की ज़रूरत है? तब मुझे लगता है कि मैं बस इसे rsync के साथ --excludeझंडे का एक गुच्छा का उपयोग करके सूँघ सकता हूं ।

या बेहतर विचार हैं, विशेष रूप से FOSS के अनुकूल?


मुझे लगता है कि यह सवाल बेहद बुनियादी लगता है, लेकिन इस तरह के सिस्टम को इतने लंबे समय तक चलाने के बाद मैंने इसे बार-बार गड़बड़ कर दिया है और मैंने कभी भी यह नहीं सोचा कि यह सही कैसे होगा
सैंड्रा


इसकी कीमत क्या है, cp -r -aफाइलों की नकल करते समय जितनी संभव हो उतने फाइल विशेषताओं को संरक्षित करेगा (लक्ष्य फाइलसिस्टम का समर्थन करता है इसके आधार पर)। -aध्वज का निर्देश cpविशेषताओं को संरक्षित करने के। किसी नेटवर्क पर या किसी फ़ाइल सिस्टम के माध्यम से कॉपी करने के लिए जो आवश्यक विशेषताओं का समर्थन नहीं करता है, tar -cहमेशा मेरे लिए काम किया है, हालांकि मेरा मानना ​​है कि कुछ किनारे मामले हैं जो इसे कवर नहीं करते हैं और विशेष रूप से मेरा मानना tarहै कि डिफ़ॉल्ट रूप से उपयोगकर्ता नाम मिलान पर निर्भर है दोनों सिस्टम। उस ने कहा, मैंने tarबिना किसी स्पष्ट मुद्दों का उपयोग किए एक संपूर्ण (अनमाउंट) लिनक्स सिस्टम को कॉपी किया है ।
माइकल जॉनसन

इसके अलावा क्या कोई विशेष कारण है कि सिस्टम को लाइव कॉपी करना आवश्यक है?
जॉनसन

लाइनोड की स्नैपशॉट सेवा का उपयोग करें?
ivanivan

जवाबों:


15

तो आप उन सभी गलत गलतियों के बिना अपने सभी ड्राइव का बैकअप लेना चाहते हैं और सभी / proc और अन्य अस्थायी फ़ोल्डरों को भी फ़िल्टर करते हैं?

एक विकल्प फाइल सिस्टम के भीतर रूट फ़ोल्डर को दूसरे फ़ोल्डर में माउंट करना है, जैसे:

$ cd /mnt
$ mkdir drive
$ mount --bind / drive

यह आपको आपके ड्राइव पर मौजूद सभी फाइलें देगा जो अस्थायी नहीं मानी जाती हैं (जैसे / proc या sys फ़ोल्डर्स)।

अब जब आपके पास अपने रूट फ़ोल्डर का एक साफ दृश्य है, तो आप इसे मानक cpया का उपयोग करके अपने बैकअप ड्राइव पर कॉपी कर सकते हैं rsync। की तर्ज पर कुछ:

cp -R /mnt/drive /mnt/backupdrive

यह आपकी वर्णित समस्याओं को हल करता है:

  • आप पुनरावृत्ति में नहीं पड़ते हैं, क्योंकि बैकअप डिस्क ड्राइव के भीतर नहीं है (देखने का बिंदु)
  • आप किसी भी महत्वपूर्ण फाइल को याद नहीं करते हैं, क्योंकि आप उन सभी को ले रहे हैं

यह भी देखें: मैन माउंट (8)


6
बाहर देखो, इस समाधान के साथ आप उन फ़ाइलों को कॉपी कर सकते हैं जिन्हें लिखा जा रहा है, जैसे डेटाबेस। मैं फ़ाइलों को कॉपी करने से पहले एक अलग फ़ाइल में डेटाबेस को डंप करने के लिए एक स्क्रिप्ट चलाने की सलाह देता हूं। MySQL के लिए उदाहरण के लिए आप mysqldump का उपयोग कर सकते हैं।
मार्को मार्टिनली

10

लिनक्स में सब कुछ एक फाइल है। यह rsync के माध्यम से संभव है, लेकिन इसके बारे में जागरूक होने वाली चीजें हैं, जो (सबसे अच्छे रूप में) मुश्किल हैं।

आपको पहले प्रतिकृति के बारे में सोचना चाहिए, विशेष रूप से डेटाबेस के लिए। साथ ही यह आपके प्राथमिक सर्वर के सामने प्रॉक्सी / लोड बैलेंसर स्थापित करने के लिए एक अच्छा विचार है, ताकि आप संक्रमण के दौरान आसानी से अपने प्राथमिक और दर्पण सर्वर के साथ आगे और पीछे स्विच कर सकें।

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

यदि आपके पास दो नैतिक पोर्ट हैं, तो आप यह सुनिश्चित करना चाहते हैं कि नेटवर्क कॉन्फ़िगरेशन, फ़ायरवॉल और इसी तरह दोनों सर्वरों के इंटरफ़ेस नाम से मेल खाता हो, और अगर यह अलग है तो आपको rsync के बाद कॉन्फ़िगरेशन बदलने या दूसरे पर डिवाइस का नाम बदलने की आवश्यकता है (गंतव्य) सर्वर।

विभाजन लेआउट के साथ भी। आपको अपने प्राथमिक सर्वर पर समान विभाजन बनाने चाहिए, लेकिन यदि आप उन्हें खरोंच से बनाते हैं तो आप अलग-अलग यूयूआईडी के साथ समाप्त हो जाएंगे, इसलिए आपको fstab, grub, mdadm (यदि सॉफ्ट-राइड शामिल है), और इसी तरह बदलना होगा ।

लेकिन, कई चीजें ऐसी भी हैं जो गलत हो सकती हैं, जैसे डेटाबेस, जो असंगत हो सकता है यदि पहले बंद नहीं किया गया हो (rsync करने से पहले)।

प्राथमिक सर्वर के कॉन्फ़िगरेशन से मेल करने के लिए सबसे अच्छी रणनीति पहले हार्डवेयर और फाइलसिस्टम (विभाजन) तैयार करना होगा। फिर मध्यस्थ प्रणाली (जैसे अस्थायी रूप से स्थापित ssh- सर्वर के साथ लाइव सीडी) के माध्यम से खाली parititons माउंट करें। आप खाली / proc, / dev, / sys बनाते हैं और फिर बाकी को rsync करते हैं, जैसे:

rsync -avz -H --delete /etc /bin (...and so on) destserver:/mnt/yourrootfs/

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

आप नए सिस्टम को स्थापित करने की कोशिश भी कर सकते हैं (उसी संस्करण के साथ जो आप अपने प्राथमिक सर्वर पर उपयोग कर रहे हैं), फिर इसे बंद कर दें, इसे दूसरे, अस्थायी सिस्टम (जैसे लाइव सीडी) के माध्यम से माउंट करें, इसके अलावा / proc, / के अलावा और कुछ भी बदलें sys, / dev और / बूट rsync के साथ।

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


पुन: डेटाबेस: यदि आपके पास उपयुक्त फ़ाइल सिस्टम सार है (उदाहरण के लिए एक LVM), तो आप पूर्ण DB प्रतिकृति के बिना ड्राइव का लगातार स्नैपशॉट लेने में सक्षम हो सकते हैं। हालाँकि, इसके लिए यह आवश्यक है कि आपका डेटाबेस kill -9सुरक्षित हो, अन्यथा यह ठीक होने में विफल हो सकता है। एक अच्छे डेटाबेस को उस स्थिति को संभालना चाहिए , लेकिन उत्पादों की एक आश्चर्यजनक संख्या (या इससे भी बदतर नहीं है, वे लगभग हमेशा ठीक हो जाते हैं, लेकिन एक नीला चाँद में एक बार असफल हो जाते हैं जब आपको वास्तव में उन्हें काम करने की आवश्यकता होती है)। तो व्यवहार में, प्रतिकृति शायद वैसे भी अधिक विश्वसनीय है।
केविन

5

वास्तव में आप जो चाहते हैं, वह है। जो कुछ भी आप करते हैं, आपको इसे नियमित रूप से परीक्षण करना चाहिए।


Linode की एक बैकअप सेवा है। स्नैपशॉट को सीमित पूर्व-निर्धारित कार्यक्रम या एपीआई के साथ लिया जा सकता है।

स्नैपशॉट आधारित बैकअप का एक फायदा यह है कि वे समय में एक तेज बिंदु प्रदान करते हैं, क्योंकि प्रतिलिपि बनाते समय डेटा परिवर्तित नहीं होता है। स्नैपशॉट को आसानी से एक अलग होस्ट, इस मामले में एक नया लिनोड भी बहाल किया जा सकता है।


मैं उन बैकअप को सुनिश्चित करने के बारे में कुछ भी नहीं देख रहा हूँ फिर भी अगर, जैसे। लिनोड दिवालिया हो जाता है।
मार्क

मुझे अपने प्रश्न का एक संपादन टाइप करते हुए लिनोड की बैकअप सेवा के बारे में पता चला और मैंने अपने सहयोगी से इस पर बात की और हम इसके लिए गए। इसने हमारे तात्कालिक संकट को हल कर दिया है लेकिन हम अपने घरों में भी डेटा स्टोर करने का तरीका खोजने की कोशिश कर रहे हैं। इसलिए + यह बताने के लिए कि उनके पास वह सेवा है, जब मैंने पहली बार पोस्ट किया था, तो मैं अनजान था। लेकिन रिस्टोर में निम्नलिखित समस्या है: यदि हमारा सर्वर गलत है, चबाने वाली गम और तार हैंगर की एक गेंद है, तो हम जरूरी नहीं कि इसे ठीक उसी गलत स्थिति में बहाल करना चाहते हैं। हम अपने पसंदीदा डेटा को हालांकि चाहते हैं।
सांड्रा

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

1

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


1

ZFS पर अपना सिस्टम चलाएँ। तो आप कुछ का उपयोग करके एक तात्कालिक, परमाणु स्नैपशॉट ले सकते हैं:

# zfs snap -r tank@name-of-backup

जहाँ tankभी आपके ZFS पूल का नाम है। इस स्नैपशॉट को फ़ाइलसिस्टम और इसके सभी चाइल्ड फाइल सिस्टम के एक तात्कालिक समय-समय पर स्नैपशॉट होने की गारंटी है।

एक बार जब आप स्नैपशॉट बना लेते हैं, तो आप इसे दूसरे होस्ट का उपयोग करके स्थानांतरित कर सकते हैं zfs sendऔर ssh


0

मेरी राय यह निर्भर करता है कि आप आंतरिक लिनक्स कमांड के साथ क्या और कहां सर्वर चला रहे हैं यह संभव नहीं है, आपको पूरा डेटा और लाइब्रेरीज़ की नकल / पाइप करना होगा। यदि आप vmware पर चल रहे हैं और अच्छी तरह से कॉन्फ़िगर किया गया है तो यह लाइव माइग्रेशन प्रदान करता है। या फिर आपको थर्ड पार्टी टूल्स का इस्तेमाल करना होगा। आशा है कि यह आपकी मदद करेगा। कुछ और संदर्भ मैं लाइव सर्वर का बैकअप कैसे बना सकता हूं?

रुपीक्स सर्वर के बीच डेटा को सिंक करने के लिए अच्छा कमांड है।


0

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

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

दूसरे, मैं आपके पूर्ण सर्वर के सेटअप को स्क्रिप्ट प्रबंधन प्रणाली के साथ स्क्रिप्ट करने की सलाह देता हूं, जैसे कि Ansible। यह करेगा

  • स्रोत नियंत्रण में आपके द्वारा कॉन्फ़िगर की गई सभी चीज़ों का दस्तावेज़

  • आपको यह सुनिश्चित करने के लिए कि आपकी स्क्रिप्ट अद्यतित हैं, बैकअप या नंगे धातु से सर्वर को फिर से बनाने की अनुमति दें

  • आपको एक नए ऑपरेटिंग सिस्टम पर स्क्रिप्ट को फिर से चलाने की अनुमति देता है, आमतौर पर काफी मामूली बदलावों के साथ।


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