मुखपृष्ठ » कैसे » लिनक्स पर अपने डेटा को बैकअप करने के लिए rsync का उपयोग कैसे करें

    लिनक्स पर अपने डेटा को बैकअप करने के लिए rsync का उपयोग कैसे करें

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

    इसका उपयोग विंडोज सिस्टम पर किया जा सकता है लेकिन यह केवल विभिन्न पोर्ट्स (जैसे सिग्विन) के माध्यम से उपलब्ध है, इसलिए इसमें हम कैसे लिनक्स पर इसे स्थापित करने के बारे में बात करेंगे। सबसे पहले, हमें rsync क्लाइंट को स्थापित / अपडेट करना होगा। Red Hat वितरण पर, कमांड "yum install rsync" है और डेबियन पर यह "sudo apt-get install rsync" है।


    Red Hat / CentOS पर कमांड, रूट के रूप में लॉग इन करने के बाद (ध्यान दें कि Red Hat के कुछ हालिया वितरण sudo विधि का समर्थन करते हैं).


    डेबियन / उबंटू पर कमांड.

    स्थानीय बैकअप के लिए rsync का उपयोग करना

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

    $ rsync -av --delete / Directory1 / / Directory2 /

    ऊपर दिए गए कोड से Directory1 की सामग्री Directory2 तक सिंक्रनाइज़ हो जाएगी, और दोनों के बीच कोई अंतर नहीं रह जाएगा। यदि rsync को पता चलता है कि Directory2 में ऐसी फ़ाइल है जो Directory1 नहीं करती है, तो वह इसे हटा देगी। यदि निर्देशिका में rsync एक फ़ाइल पाता है जिसे बदल दिया गया है, बनाया गया है या हटा दिया गया है, तो यह उन्हीं परिवर्तनों को Directory2 में दर्शाएगा.

    बहुत सारे अलग-अलग स्विच हैं जिनका उपयोग आप rsync के लिए अपनी विशिष्ट आवश्यकताओं के लिए निजीकृत करने के लिए कर सकते हैं। यहाँ वही है जो उपरोक्त कोड rsync को बैकअप के साथ करने के लिए कहता है:

    1. -a = पुनरावर्ती (निर्देशिकाओं में पुनर्खरीद), लिंक (कॉपी सहानुभूति सहानुभूति के रूप में), परमिट (संरक्षित अनुमति), बार (संरक्षित संशोधन बार), समूह (संरक्षित समूह), मालिक (मालिक को संरक्षित), डिवाइस फ़ाइलों को संरक्षित, और विशेष फाइलों को संरक्षित करें.
    २. -व = क्रिया। मेरे विचार से क्रिया महत्वपूर्ण है इसलिए आप देख सकते हैं कि वास्तव में rsync क्या समर्थन कर रहा है। इस बारे में सोचें: क्या होगा यदि आपकी हार्ड ड्राइव खराब हो रही है, और आपकी जानकारी के बिना फ़ाइलों को हटाना शुरू कर देता है, तो आप अपनी rsync स्क्रिप्ट चलाते हैं और यह उन परिवर्तनों को आपके बैकअप पर धकेल देता है, जिससे किसी फ़ाइल के सभी इंस्टेंस को डिलीट कर दिया जाता है जिसे आप प्राप्त नहीं करना चाहते थे से छुटकारा?
    3. -डेट = यह निर्देशिका में मौजूद किसी भी फाइल को हटाने के लिए rsync को बताता है जो Directory1 में नहीं हैं। यदि आप इस विकल्प का उपयोग करना चुनते हैं, तो मैं ऊपर दिए गए कारणों के लिए, वर्बोज़ विकल्पों का उपयोग करने की भी सलाह देता हूं.

    उपरोक्त स्क्रिप्ट का उपयोग करते हुए, यहाँ rsync का उपयोग करके उत्पन्न आउटपुट से Directory2 से Directory2 तक बैकअप किया जा रहा है। ध्यान दें कि वर्बोज़ स्विच के बिना, आपको ऐसी विस्तृत जानकारी नहीं मिलेगी.

    ऊपर दिया गया स्क्रीनशॉट हमें बताता है कि File1.txt और File2.jpg को नए रूप में पाया जा रहा था या अन्यथा Directory2 में मौजूद प्रतियों से बदल दिया गया था, और इसलिए उन्हें बैकअप दिया गया था। नोब टिप: मेरे rsync कमांड में निर्देशिकाओं के अंत में पीछे की ओर खिसकने वाले नोटिस - जो आवश्यक हैं, उन्हें याद रखना सुनिश्चित करें.

    हम इस ट्यूटोरियल के अंत में कुछ और आसान स्विच ऑन करेंगे, लेकिन बस याद रखें कि पूरी लिस्टिंग देखने के लिए आप "man rsync" टाइप कर सकते हैं और उपयोग करने के लिए स्विच की पूरी सूची देखें.

    जहां तक ​​स्थानीय बैकअप की बात है, इसके बारे में इसे शामिल किया गया है। जैसा कि आप बता सकते हैं, rsync का उपयोग करना बहुत आसान है। इंटरनेट पर बाहरी होस्ट के साथ डेटा को सिंक करने के लिए इसका उपयोग करने पर यह थोड़ा और अधिक जटिल हो जाता है, लेकिन हम आपको ऐसा करने का एक सरल, तेज़ और सुरक्षित तरीका दिखाएंगे.

    बाहरी बैकअप के लिए rsync का उपयोग करना

    rsync को बाहरी बैकअप के लिए कई अलग-अलग तरीकों से कॉन्फ़िगर किया जा सकता है, लेकिन हम SSH के माध्यम से rsync को टनलिंग करने के सबसे व्यावहारिक (सबसे आसान और सबसे सुरक्षित) तरीके पर भी जाएंगे। अधिकांश सर्वर और यहां तक ​​कि कई क्लाइंट के पास पहले से ही SSH है, और इसका उपयोग आपके rsync बैकअप के लिए किया जा सकता है। हम आपको स्थानीय नेटवर्क पर बैकअप के लिए एक लिनक्स मशीन प्राप्त करने की प्रक्रिया दिखाएंगे। यह प्रक्रिया ठीक वैसी ही होगी यदि एक होस्ट इंटरनेट पर कहीं बाहर था, बस ध्यान दें कि पोर्ट 22 (या आपके पास जो भी एसएसएच कॉन्फ़िगर किया गया है), उसे किसी भी नेटवर्क उपकरण पर सर्वर की चीजों पर अग्रेषित करना होगा।.

    सर्वर पर (कंप्यूटर जो बैकअप प्राप्त करेगा), सुनिश्चित करें कि SSH और rsync स्थापित हैं.

    # yum -y ssh rsync स्थापित करें

    # sudo apt-get install ssh rsync

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

    हम उसी कमांड को चलाएंगे जो हमने स्थानीय कंप्यूटर पर rsync का उपयोग करने के लिए किया था, लेकिन SSH के माध्यम से rsync को ट्यून करने के लिए आवश्यक परिवर्धन को मेरे स्थानीय नेटवर्क के सर्वर पर शामिल करता है। "192.168.235.137" से कनेक्ट होने वाले उपयोगकर्ता "geek" के लिए और ऊपर (-avde) के समान स्विच का उपयोग करके हम निम्नलिखित चलाएंगे:

    $ rsync -av -delete -e ssh / Directory1 / [email protected]: / निर्देशिका /

    यदि आपके पास 22 के अलावा कुछ पोर्ट पर एसएसएच है, तो आपको पोर्ट संख्या निर्दिष्ट करने की आवश्यकता होगी, जैसे कि इस उदाहरण में जहां मैं पोर्ट 12345 का उपयोग करता हूं:

    $ rsync -av -delete -e 'ssh -p 12345' / Directory1 / [email protected]: / Directory2 /

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

    स्वचालित rsync बैकअप

    क्रोन का उपयोग लिनक्स पर कमांड के निष्पादन को स्वचालित करने के लिए किया जा सकता है, जैसे कि rsync। क्रोन का उपयोग करके, हम अपने लिनक्स सिस्टम को रात के बैकअप चला सकते हैं, या फिर अक्सर आप उन्हें चलाना चाहेंगे.

    आपके द्वारा लॉग इन किए गए उपयोगकर्ता के लिए क्रोन टेबल फ़ाइल को संपादित करने के लिए:

    $ crontab -e

    इस फ़ाइल को संपादित करने के लिए आपको vi से परिचित होना होगा। डालने के लिए "I" टाइप करें, और फिर क्रोन टेबल फ़ाइल को संपादित करना शुरू करें.

    क्रोन निम्नलिखित वाक्यविन्यास का उपयोग करता है: मिनट का घंटा, दिन का घंटा, महीने का दिन, वर्ष का महीना, सप्ताह का दिन, कमांड.

    यह पहली बार में थोड़ा भ्रमित हो सकता है, इसलिए मैं आपको एक उदाहरण देता हूं। निम्नलिखित कमांड हर रात 10 बजे rsync कमांड चलाएगी:

    0 22 * ​​* * rsync -av --delete / Directory1 / / Directory2 /

    पहले "0" घंटे के मिनट को निर्दिष्ट करता है, और "22" को 10 बजे निर्दिष्ट करता है। चूँकि हम चाहते हैं कि यह कमांड रोज़ चले, हम बाकी क्षेत्रों को तारांकन के साथ छोड़ देंगे और फिर rsync कमांड पेस्ट करेंगे.

    आपके द्वारा क्रोन को कॉन्फ़िगर करने के बाद, प्रेस से बच, और फिर टाइप करें ": wq" (बिना उद्धरण के) और प्रेस दर्ज करें। यह vi में आपके परिवर्तनों को बचाएगा.

    क्रॉन को इससे बहुत अधिक गहराई मिल सकती है, लेकिन इसके बारे में जाना इस ट्यूटोरियल के दायरे से परे होगा। ज्यादातर लोग बस एक साधारण साप्ताहिक या दैनिक बैकअप चाहते हैं, और जो हमने आपको दिखाया है वह आसानी से पूरा कर सकते हैं। क्रोन के बारे में अधिक जानकारी के लिए, कृपया मैन पेज देखें.

    अन्य उपयोगी विशेषताएं

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

    $ zip /ZippedFiles/archive.zip / Directory1 / && rsync -av --delete / ZippedFiles / / Directory2 /

    ऊपर दी गई कमांड Directory1 से फाइल लेती है, उन्हें /ZippedFiles/archive.zip में डालती है और फिर उस डायरेक्टरी को Directory2 में rsyncs करती है। प्रारंभ में, आप सोच सकते हैं कि यह विधि बड़े बैकअप के लिए अक्षम साबित होगी, ज़िप फ़ाइल पर विचार करने से हर बार फ़ाइल में थोड़ी सी भी फेरबदल की जाएगी। हालाँकि, rsync केवल परिवर्तित डेटा को स्थानांतरित करता है, इसलिए यदि आपकी ज़िप फ़ाइल 10 GB है, और फिर आप Directory1 में एक पाठ फ़ाइल जोड़ते हैं, तो rsync को पता चल जाएगा कि आपके द्वारा जोड़े गए सभी (भले ही यह एक ज़िप में है) और केवल कुछ किलोबाइट्स को स्थानांतरित करें बदले हुए डेटा का.

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

    जो भी विकल्प और सुविधाएँ आप चुनते हैं, rsync तिथि करने के लिए सबसे कुशल और बहुमुखी बैकअप टूल में से एक साबित होता है, और यहां तक ​​कि एक साधारण rsync स्क्रिप्ट आपको अपना डेटा खोने से बचा सकती है.