ऑनवर्क्स लिनक्स और विंडोज ऑनलाइन वर्कस्टेशन

प्रतीक चिन्ह

वर्कस्टेशन के लिए मुफ्त होस्टिंग ऑनलाइन

<पिछला | विषय-सूची | अगला>

फ़ाइलों और निर्देशिकाओं को सिंक्रनाइज़ करना

किसी सिस्टम की बैकअप प्रतिलिपि बनाए रखने की एक सामान्य रणनीति में एक या अधिक निर्देशिकाओं को स्थानीय सिस्टम (आमतौर पर किसी प्रकार का हटाने योग्य स्टोरेज डिवाइस) या रिमोट सिस्टम पर स्थित किसी अन्य निर्देशिका (या निर्देशिका) के साथ सिंक्रनाइज़ रखना शामिल होता है। उदाहरण के लिए, हमारे पास विकासाधीन किसी वेबसाइट की एक स्थानीय प्रतिलिपि हो सकती है और हम इसे समय-समय पर किसी दूरस्थ वेब सर्वर पर "लाइव" प्रतिलिपि के साथ सिंक्रनाइज़ कर सकते हैं।

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

rsync को इस प्रकार लागू किया जाता है:

rsync विकल्प स्रोत गंतव्य

जहां स्रोत और गंतव्य निम्नलिखित में से एक हैं:


● एक स्थानीय फ़ाइल या निर्देशिका

● एक दूरस्थ फ़ाइल या निर्देशिका के रूप में [उपयोगकर्ता@]होस्ट:पथ

● एक दूरस्थ rsync सर्वर जो URI के साथ निर्दिष्ट है rsync://[user@]host[:port]/path

ध्यान दें कि या तो स्रोत या गंतव्य एक स्थानीय फ़ाइल होनी चाहिए। रिमोट-टू-रिमोट कॉपी-आईएनजी समर्थित नहीं है।

कोशिश करते हैं rsync कुछ स्थानीय फ़ाइलों पर। सबसे पहले, आइए अपनी सफाई करें foo निर्देशिका:


[मुझे@लिनक्सबॉक्स ~]$ आरएम-आरएफ फू/*

[मुझे@लिनक्सबॉक्स ~]$ आरएम-आरएफ फू/*


इसके बाद, हम इसे सिंक्रोनाइज़ करेंगे खेल का मैदान संबंधित प्रतिलिपि के साथ निर्देशिका foo:


[मुझे@लिनक्सबॉक्स ~]$ rsync -av खेल का मैदान फू

[मुझे@लिनक्सबॉक्स ~]$ rsync -av खेल का मैदान फू


हमने दोनों को शामिल किया है -a विकल्प (संग्रह के लिए-फ़ाइल विशेषताओं की पुनरावृत्ति और संरक्षण का कारण बनता है) और -v विकल्प (वर्बोज़ आउटपुट) बनाने के लिए आईना का खेल का मैदान निर्देशिका के भीतर foo. जब कमांड चलती है, हम कॉपी की जा रही फ़ाइलों और निर्देशिकाओं की एक सूची देखेंगे। अंत में, हम इस तरह एक सारांश संदेश देखेंगे:



भेजे गए 135759 बाइट्स प्राप्त हुए 57870 बाइट्स 387258.00 बाइट्स/सेकंड कुल आकार 3230 है स्पीडअप 0.02 है

भेजे गए 135759 बाइट्स प्राप्त हुए 57870 बाइट्स 387258.00 बाइट्स/सेकंड कुल आकार 3230 है स्पीडअप 0.02 है


निष्पादित प्रतिलिपि की मात्रा का संकेत। यदि हम दोबारा कमांड चलाते हैं, तो हमें एक अलग परिणाम दिखाई देगा:



[मुझे@लिनक्सबॉक्स ~]$ rsync -av प्लेगाउंड फू

बिल्डिंग फ़ाइल सूची... हो गई


भेजे गए 22635 बाइट्स प्राप्त हुए 20 बाइट्स 45310.00 बाइट्स/सेकंड कुल आकार 3230 है स्पीडअप 0.14 है

[मुझे@लिनक्सबॉक्स ~]$ rsync -av प्लेगाउंड फू

बिल्डिंग फ़ाइल सूची... हो गई


भेजे गए 22635 बाइट्स प्राप्त हुए 20 बाइट्स 45310.00 बाइट्स/सेकंड कुल आकार 3230 है स्पीडअप 0.14 है


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


[मुझे@लिनक्सबॉक्स ~]$ खेल का मैदान/dir-099/file-Z स्पर्श करें [मुझे@लिनक्सबॉक्स ~]$ rsync -av खेल का मैदान फू बिल्डिंग फ़ाइल सूची... हो गई

खेल का मैदान/dir-099/file-Z

भेजे गए 22685 बाइट्स प्राप्त हुए 42 बाइट्स 45454.00 बाइट्स/सेकंड कुल आकार 3230 है स्पीडअप 0.14 है

[मुझे@लिनक्सबॉक्स ~]$ खेल का मैदान/dir-099/file-Z स्पर्श करें [मुझे@लिनक्सबॉक्स ~]$ rsync -av खेल का मैदान फू बिल्डिंग फ़ाइल सूची... हो गई

खेल का मैदान/dir-099/file-Z

भेजे गए 22685 बाइट्स प्राप्त हुए 42 बाइट्स 45454.00 बाइट्स/सेकंड कुल आकार 3230 है स्पीडअप 0.14 है


हमने देखा कि rsync परिवर्तन का पता लगाया और केवल अद्यतन फ़ाइल की प्रतिलिपि बनाई।

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



[मुझे@लिनक्सबॉक्स ~]$ mkdir /मीडिया/बिगडिस्क/बैकअप

[मुझे@लिनक्सबॉक्स ~]$ sudo rsync -av --delete /etc /home /usr/local

/मीडिया/बिगडिस्क/बैकअप

[मुझे@लिनक्सबॉक्स ~]$ mkdir /मीडिया/बिगडिस्क/बैकअप

[मुझे@लिनक्सबॉक्स ~]$ sudo rsync -av --delete /etc /home /usr/local

/मीडिया/बिगडिस्क/बैकअप


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

यह सुविधा प्रदान करने के लिए .bashrc फ़ाइल:


उपनाम बैकअप='sudo rsync -av --delete /etc /home /usr/local

/मीडिया/बिगडिस्क/बैकअप'

उपनाम बैकअप='sudo rsync -av --delete /etc /home /usr/local

/मीडिया/बिगडिस्क/बैकअप'


अब हमें बस अपनी बाहरी ड्राइव को जोड़ना है और चलाना है बैकअप कार्य करने का आदेश.


 

OnWorks पर शीर्ष OS क्लाउड कंप्यूटिंग: