क्या कोई मुझे बता सकता है कि यह क्या करता है?
rsync -uva --delete /srv/bkp01 /srv/offbk2/ > ~/offbkp01.log
क्या यह हटाता है bkp01
और offbk2
एक लॉग भेजता है offbkp01.log
?
क्या कोई मुझे बता सकता है कि यह क्या करता है?
rsync -uva --delete /srv/bkp01 /srv/offbk2/ > ~/offbkp01.log
क्या यह हटाता है bkp01
और offbk2
एक लॉग भेजता है offbkp01.log
?
जवाबों:
इसे भागों में विभाजित करने के लिए, दो प्रमुख खंड हैं, इसके बाद एक सारांश और नोट्स हैं:
rsync
आदेश:rsync -uva --delete /srv/bkp01 /srv/offbk2/
rsync-command > ~/offbkp01.log
rsync
आदेश:rsync
- मुझे लगता है कि यह कोई स्पष्टीकरण की जरूरत है (लेकिन अगर अनुरोध किया जाएगा प्रदान करेगा)।-uva
- एकल चरित्र विकल्पों का एक सेट, होना (छोटा दिखाया गया लंबा रूप):
-u
--update
- rsync को बताता है कि सभी संशोधनों को केवल उसी गंतव्य पर फ़ाइलों पर लागू होना चाहिए जो एक ही उम्र (और अलग-अलग आकार) हैं या स्रोत पर पुराने से अधिक हैं। यही है, rsync को केवल उस स्रोत से परिवर्तनों पर पास करना चाहिए जो गंतव्य को अद्यतन करेगा , लेकिन इसमें ऐसा कोई परिवर्तन नहीं होना चाहिए जिससे गंतव्य फ़ाइल पुराना संस्करण बन जाए।
कुछ अपवाद हैं। प्रकार में अंतर (जैसे, एक फ़ाइल है, दूसरा एक निर्देशिका है) तारीखों की परवाह किए बिना एक अद्यतन का कारण होगा। Symlinks और अन्य विशेष फाइलें इस विकल्प को अनदेखा करती हैं। और, महत्वपूर्ण बात, यह प्रभावित नहीं करता है कि कौन सी फाइलें डिलीट हो जाती हैं।
-v
--verbose
- निष्पादित करते समय rsync जानकारी की मात्रा को बढ़ाता है। इसके बिना, rsync प्रिंट होगा (लगभग?) कुछ भी नहीं। इस विकल्प के साथ -s, rsync आपको बताएगा कि कौन सी फाइलें स्थानांतरित की जा रही हैं, और अंत में एक सारांश रखें। अधिक v
s मुद्रित जानकारी को बढ़ाता है, हालाँकि मैन पेज कहता v
है कि डीबगिंग करते समय केवल दो से अधिक का उपयोग किया जाना चाहिए। -a
--archive
- यह एक -rlptgD
साथ पैक किए गए कई अन्य विकल्पों ( ) के बराबर है । जैसा कि लंबे नाम से पता चलता है, यह फ़ाइलों और निर्देशिकाओं के संग्रह के लिए कई सामान्य विकल्पों को सेट करने का एक त्वरित तरीका है। यह:-r
--recursive
- पुनरावर्ती निर्देशिकाओं को कॉपी करने के लिए rsync बताता है। इसके बिना, या अधिक विशेष -d
--dirs
विकल्प के साथ, rsync बस किसी भी निर्देशिका को छोड़ देगा, जो इसका सामना किया है (और आपको इसके आउटपुट में इसके बारे में बताएगा)। -l
--links
- जब स्रोत एक सिम्लिंक होता है, तो गंतव्य पर एक सिमलिंक बनाएं। अन्य विकल्पों के आधार पर, सहानुभूति अन्यथा छोड़ी जा सकती है या पूर्ण पृथक प्रतिलिपि में बनाई जा सकती है (यानी, सामग्री के साथ एक सच्ची निर्देशिका (या फ़ाइल की दूसरी प्रति) सिम्कलिन के बजाय)। -p
--perms
- गंतव्य फ़ाइलों की अनुमतियों को स्रोत फ़ाइलों के समान सेट करता है। -t
--times
- गंतव्य फ़ाइलों के संशोधन समय को स्रोत फ़ाइलों के समान सेट करता है। चूंकि इन समयों को सिंक में रखने से rsync एल्गोरिथम अधिक कुशल हो जाता है, आप आमतौर पर हमेशा इसका उपयोग स्पष्ट रूप से या अंतर्निहित रूप से करना चाहते हैं। -g
--group
- गंतव्य की समूह विशेषता को स्रोत के समान सेट करता है। डिफ़ॉल्ट रूप से नाम से सहयोगी, लेकिन कुछ परिस्थितियों में समूह आईडी नंबर पर वापस आ जाएगा। यदि प्राप्त करने वाली rsync को सुपर-उपयोगकर्ता के रूप में नहीं चलाया जाता है (या इसके साथ फ़ेकिंग --fake-super
), केवल समूह जो उपयोगकर्ता को प्राप्त पक्ष पर rsync को आमंत्रित करते हैं, उन्हें सेट किया जा सकता है। अन्यथा, समूह केवल उसी उपयोगकर्ता के डिफ़ॉल्ट समूह पर सेट किया जाएगा जो पहले उल्लेख किया गया है। -D
- विकल्पों के समतुल्य --devices
और --specials
एक साथ। उनका अर्थ है:--devices
- चरित्र और ब्लॉक डिवाइस फ़ाइलों को स्थानांतरित कर रहे हैं। अगर कोई प्रभाव नहीं है प्राप्त rsync सुपर उपयोगकर्ता (या से faking के रूप में चलाने नहीं है --fake-super
)। --specials
- विशेष फाइलें (जैसे सॉकेट) स्थानांतरित की जाती हैं (वे अन्यथा नहीं होंगी)। --delete
- गंतव्य पर मौजूद फ़ाइलों को हटाने के लिए rsync को बताता है, लेकिन स्रोत पर नहीं। यह ऊपर दिए गए अद्यतन विकल्प से प्रभावित नहीं है (वास्तव में, यह कैसे हो सकता है क्योंकि अधिकांश फ़ाइल-सिस्टम आवश्यक डेटा को बनाए रखने के लिए नहीं देख पाएंगे कि कौन सी कार्रवाई नई थी?)। यह विकल्प वाइल्डकार्ड / ग्लोब विस्तार के बाद स्रोतों पर कार्य करता है , इसलिए dir / * dir / के समान नहीं है। कुछ महत्वपूर्ण नोट:--dry-run
पहले विकल्प के साथ आज़माना चाहिए , जो एक बहाना हस्तांतरण करेगा जो आपको यह सुनिश्चित करने की अनुमति देता है कि कोई अनपेक्षित परिवर्तन नहीं किया गया है। --ignore-errors
विकल्प के साथ ओवरराइड किया जा सकता है , हालांकि आप शायद ऐसा नहीं करना चाहते।--delete-during
एल्गोरिथ्म का उपयोग किया जाता है। यदि रिसीवर अधिक पुराना है, तो --delete-before
इसका उपयोग किया जाता है। यदि यह महत्वपूर्ण है कि फ़ाइलें एक निश्चित प्रकार की स्थिरता बनाए रखें तो एक त्रुटि उत्पन्न होनी चाहिए (जैसे कि अन्य सभी परिवर्तन किए जाने तक कुछ भी नहीं हटाना), आपको डिफ़ॉल्ट से अधिक विशिष्ट विकल्प का उपयोग करना चाहिए।/srv/bkp01
- स्रोत फ़ाइल या निर्देशिका। अगर इसका अर्थ है कि निर्देशिका के अंत में कोई स्लैश नहीं है, और यदि अन्य निर्देशिका मौजूद है, तो इसके बारे में कुछ विस्तृत नियम हैं। आप विवरण के लिए मैन पेज का उपयोग अनुभाग देख सकते हैं , लेकिन यहां एक अनुगामी स्लैश की कमी का अर्थ है कि यह निर्देशिका गंतव्य में कॉपी की जाएगी, बजाय इस निर्देशिका की सामग्री को गंतव्य में कॉपी किए। अगर यह एक निर्देशिका के बजाय एक फाइल है।/srv/offbk2/
- गंतव्य निर्देशिका। सामान्य तौर पर, यह हमेशा rsync कमांड सेक्शन में सूचीबद्ध अंतिम आइटम होगा जब तक कि विकल्प को कमांड में कहीं और निर्दिष्ट करने के लिए उपयोग नहीं किया जाता है।>
- यह रीडायरेक्ट (मानक आउटपुट) जो कुछ भी बाईं ओर से दाईं ओर फ़ाइल में है, उसकी सामग्री बन जाता है और यदि यह पहले से मौजूद नहीं है तो फ़ाइल (यदि संभव हो तो) का निर्माण करता है। कुछ नोट:2>&1
। आदेश महत्वपूर्ण है, इसलिए सामान्यीकरण करें कि उसे कहां रखा जाए। मैजिक नंबर 1
stdout को 2
संदर्भित करता है, Stderr को संदर्भित करता है, &
(अनिवार्य रूप से) "का पता" है, और पूर्ण कमांड स्निपेट का अर्थ है "stderr के आउटपुट को stdout स्ट्रीम में पुनर्निर्देशित करें"। >>
इसके बजाय उपयोग कर सकते हैं । स्टेडर को एक ही स्थान पर पुनर्निर्देशित करने की विधि समान है। 1> stdout_file 2> stderr_file
। आप उस आदेश के >>
स्थान पर उपयोग कर सकते >
हैं ऐसा करने के बजाय प्रतिस्थापित करके।~
- यह वर्तमान उपयोगकर्ता के घर निर्देशिका के लिए आशुलिपि है, और अगले बिट का हिस्सा बनता है।~/offbkp01.log
- फ़ाइल वर्तमान उपयोगकर्ता के घर निर्देशिका के अंदर offbkp01.log। यह वह जगह है जहाँ rsync कमांड के आउटपुट को पुनर्निर्देशन के कारण रखा जाएगा >
।संक्षेप में, यह आदेश होगा:
/srv/bkp01
, /srv/offbk2/bkp01
, और यह उन स्थितियों में से कुछ भी /srv/offbk2/
नहीं हटाएगा/srv/bkp01
, जो निम्नलिखित शर्तों के साथ हैं:
/srv/offbk2/
जो उसके संशोधन समय की तुलना में नया है /srv/bkp01
, तो इसे अपडेट नहीं किया जाएगा , यदि दोनों आइटम अभी भी एक ही प्रकार (नियमित फ़ाइल, निर्देशिका, या सिमलिंक हैं) ))। इसके अतिरिक्त, rsync इस बारे में कुछ जानकारी प्रिंट करेगा कि यह क्या कर रहा है (विशेष रूप से, कौन सी फाइलें स्थानांतरित की जा रही हैं, और एक अंतिम सारांश ), जिसे शेल फाइल में लिख देगा~/offbkp01.log
। यदि यह फ़ाइल पहले से मौजूद नहीं है, तो लॉग फ़ाइल बनाई जाएगी और यदि यह पहले से मौजूद है तो इसे अधिलेखित कर दिया जाएगा।
NB: --fake-super
एक विकल्प है जिसका उपयोग rsync को सुपर-उपयोगकर्ता गतिविधियों का अनुकरण करने के लिए किया जाता है। यह फाइल की विस्तारित विशेषताओं का उपयोग करके ऐसा करता है कि यह उन विशेषताओं को संग्रहीत करने के लिए है जिन्हें अधिक विशेषाधिकार के बिना सेट नहीं किया जा सकता है। प्रत्येक विशेषता का वास्तविक संस्करण जो कुछ भी समझ में आता है, वह विकल्प और विशेषाधिकार उपलब्ध कराता है। यद्यपि यह सुपर-उपयोगकर्ता विशेषाधिकारों के बावजूद कुछ बैकअप बनाने के लिए सुविधाजनक बनाता है, किसी को यह भी ध्यान रखना चाहिए कि यह सामान्य रूप से rsync के उपयोग से अधिक सुरक्षा जोखिम पैदा कर सकता है, क्योंकि वास्तविक सुरक्षा विशेषताओं को सेट नहीं किया जा सकता है। ठीक से, भले ही उनके बारे में जानकारी का बैकअप लिया गया था।
स्रोत: rsync के साथ काम करने और इसके मैन-पेज को पढ़ने में बहुत समय ।
मैनुअल से:
--delete
यह rsync को रिसीरिंग फाइल्स को रिसीविंग साइड (जो कि सेंडिंग साइड पर नहीं हैं) से डिलीट करने के लिए कहता है, लेकिन केवल उन डायरेक्ट्रीज़ के लिए जिन्हें सिंक किया जा रहा है। आपको पूरी निर्देशिका भेजने के लिए rsync को haveasked करना चाहिए (जैसे कि "dir" या "dir /") निर्देशिका की सामग्री के लिए वाइल्डकार्ड का उपयोग किए बिना (जैसे "dir / *") क्योंकि वाइल्डकार्ड शेल द्वारा विस्तारित है और rsync इस प्रकार अनुरोध करता है व्यक्तिगत फ़ाइलों को स्थानांतरित करने के लिए, फाइलों की मूल निर्देशिका नहीं। स्थानांतरण से बाहर रखी गई फ़ाइलों को भी हटाए जाने से बाहर रखा गया है जब तक कि आप --delete- बहिष्कृत विकल्प का उपयोग नहीं करते हैं या केवल भेजने वाले पक्ष के मिलान के रूप में नियमों को चिह्नित करते हैं (फ़िल्टर नियम अनुभाग में शामिल / बहिष्कृत संशोधक देखें)।
तो यह उन फ़ाइलों को गंतव्य से हटा देगा जो मूल निर्देशिका का हिस्सा नहीं हैं यदि आपने वाइल्डकार्ड का उपयोग नहीं किया है।
स्रोत निर्देशिका:
1.txt
2.txt
3.txt
गन्तव्य निर्देशिका:
4.txt
4.txt rsync के बाद चला जाएगा और 1.txt, 2.txt और 3.txt गंतव्य पर होगा।
अन्य चीजों के बारे में:
uva
man rsync
नहीं, यह केवल bkp01
निर्देशिका से बाहरी फ़ाइलों को हटाता है ।
इसके अलावा:
-u
, --update
- रिसीवर पर नई हैं कि फ़ाइलों को छोड़ दें-v
, --verbose
- वर्बोसिटी बढ़ाना-a
, --archive
- संग्रह मोड; बराबर- surptgoDD (no -H, -A -X)rsync -uva --delete /srv/bkp01 /srv/offbk2/
कमांड का आउटपुट आपके टर्मिनल में प्रिंट होने के बजाय रिडायरेक्शन ऑपरेटर ( )~/offbkp01.log
का उपयोग करके फ़ाइल में भेजा जाता है । यदि फ़ाइल मौजूद नहीं है तो इसे बनाया जाएगा। यदि फ़ाइल मौजूद है, तो पुरानी सामग्री को मिटा दिया जाएगा।>
man rsync
अधिक जानकारी के लिए देखें ।
bkp01
। यह केवल बाहरी फ़ाइलों को हटाता है - यानी जो गंतव्य में मौजूद स्रोत में मौजूद नहीं हैं।
rsync
रिमोट फाइल कॉपी - स्थानीय डिस्क, निर्देशिका या एक नेटवर्क में फ़ाइल पेड़ों को सिंक्रनाइज़ करें।
-u update
-v verbose
-a archive
--delete --> delete
यहाँ यह offbk2 के अंदर की फाइल्स को डिलीट कर देगा ।
तब परिणाम का परिणाम (सफलता या नहीं) उस लॉग फ़ाइल पर पुनर्निर्देशित किया जाएगा।