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

विषयसूची:

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

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

वीडियो: लिनक्स पर अपने डेटा का बैकअप लेने के लिए rsync का उपयोग कैसे करें
वीडियो: How To Fix Windows 10 File Explorer Crashing - YouTube 2024, अप्रैल
Anonim
rsync यूनिक्स-जैसी प्रणालियों के लिए बनाया गया प्रोटोकॉल है जो बैक अप और डेटा सिंक्रनाइज़ करने के लिए अविश्वसनीय बहुमुखी प्रतिभा प्रदान करता है। इसे विभिन्न निर्देशिकाओं में फ़ाइलों का बैक अप लेने के लिए स्थानीय रूप से उपयोग किया जा सकता है या इंटरनेट पर अन्य होस्टों में सिंक करने के लिए कॉन्फ़िगर किया जा सकता है।
rsync यूनिक्स-जैसी प्रणालियों के लिए बनाया गया प्रोटोकॉल है जो बैक अप और डेटा सिंक्रनाइज़ करने के लिए अविश्वसनीय बहुमुखी प्रतिभा प्रदान करता है। इसे विभिन्न निर्देशिकाओं में फ़ाइलों का बैक अप लेने के लिए स्थानीय रूप से उपयोग किया जा सकता है या इंटरनेट पर अन्य होस्टों में सिंक करने के लिए कॉन्फ़िगर किया जा सकता है।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# yum -y install ssh rsync

# sudo apt-get install ssh rsync

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

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

$ rsync -av –delete -e ssh /Directory1/ [email protected]:/Directory2/

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

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

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

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

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

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

$ crontab -e

इस फ़ाइल को संपादित करने के लिए आपको vi से परिचित होना होगा। सम्मिलित करने के लिए "I" टाइप करें, और फिर क्रॉन तालिका फ़ाइल को संपादित करना प्रारंभ करें।

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

यह पहले थोड़ा उलझन में हो सकता है, तो मैं आपको एक उदाहरण देता हूं। निम्न आदेश 10:00 बजे हर रात 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/

Image
Image

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

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

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

सिफारिश की: