सवाल पसंदीदा rsync युक्तियाँ और चालें


जितना अधिक मैं उपयोग करता हूं rsync जितना अधिक मुझे एहसास होगा कि यह फ़ाइल हस्तांतरण की एक स्विस सेना चाकू है। यहां इतने सारे विकल्प हैं। मैंने हाल ही में पाया कि आप जा सकते हैं --remove-source-files और यह प्रतिलिपि बनाई जाने पर स्रोत से एक फ़ाइल हटा देगा, जो प्रतिलिपि प्रोग्राम की बजाय इसे एक और अधिक कदम बनाता है। :)

आप छोटे rsync युक्तियाँ और चाल क्या पसंदीदा हैं?


54
2017-07-24 11:21


मूल




जवाब:


यदि आपको कई फाइलों को सिंक करना है तो rsync संस्करण 3 का उपयोग करने का प्रयास करें! V3 अपनी फ़ाइल सूची को क्रमशः बनाता है और बहुत तेज़ है और संस्करण 2 की तुलना में कम स्मृति का उपयोग करता है।

आपके प्लेटफॉर्म के आधार पर यह काफी अंतर कर सकता है। ओएसएक्स संस्करण 2.6.3 पर एक घंटे से अधिक समय या क्रैश 5 मिलियन फाइलों का सूचकांक बनाने की कोशिश कर रहा है, जबकि संस्करण 3.0.2 मैंने संकलित किया है तुरंत कॉपी करना शुरू कर दिया है।


17
2017-07-24 16:29



ध्यान देने योग्य एक बात यह है कि यदि आप कुछ विकल्पों का उपयोग करते हैं (जैसे --delete-before उदाहरण के लिए) पुराने "बिल्ड सूची पहले" व्यवहार का उपयोग इस विकल्प के लिए सही तरीके से काम करने के लिए आवश्यक है - इसलिए यदि आपको यह व्यवहार नहीं दिखाई देता है तो जांचें कि क्या आप जिन अन्य विकल्पों का उपयोग कर रहे हैं, उन्हें संभवतः रोकने के लिए जाना जाता है। यह उपयोगी हो सकता है यदि आप बड़े पेड़ पर rsync interactively का उपयोग कर रहे हैं और प्रारंभिक स्कैन को मजबूर करना चाहते हैं तो आउटपुट --progress सटीक है (यानी "तुलना करने के लिए वस्तुओं" गिनती कभी नहीं बढ़ेगी क्योंकि शुरुआती स्कैन के बाद कोई नई वस्तु नहीं मिलेगी)। - David Spillett


का उपयोग करते हुए --link-dest स्पेस-कुशल स्नैपशॉट आधारित बैकअप बनाने के लिए, जिससे आपको बैकएडअप डेटा (प्रत्येक बैकअप रन के लिए एक) की कई पूर्ण प्रतियां दिखाई देती हैं, लेकिन फ़ाइलों के बीच जो नहीं बदलते हैं, वे नई प्रतियां सहेजने की जगह बनाने के बजाय हार्ड-लिंक्ड हैं।

(वास्तव में, मैं अभी भी उपयोग करता हूं rysnc-के बाद-cp -al विधि जो एक ही चीज़ प्राप्त करती है, देखें http://www.mikerubel.org/computers/rsync_snapshots/ तकनीक और संबंधित मुद्दों दोनों के एक बूढ़े-लेकिन-अभी भी बहुत अच्छे प्रदर्शन के लिए)

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

इसके अलावा, बहुत उपयोगी कभी मत भूलना --dry-run थोड़ा स्वस्थ परावर्तक के लिए, विशेष रूप से जब आप इसका उपयोग कर रहे हैं --delete* विकल्प।


17
2017-07-24 12:26



- ड्रा-रन के लिए +1 - David Z
ध्यान दें कि - डी-रन-रन के लिए शॉर्टकट है - ctennis
मैं लंबे नामों से चिपकना पसंद करता हूं, खासतौर पर उन स्क्रिप्ट में जो दूसरों को बनाए रख सकते हैं। यह स्पष्ट करता है कि दस्तावेज़ों के संदर्भ के बिना क्या उद्देश्य है। - David Spillett
+1 मैंने ऊपर वर्णित हार्ड-लिंक्ड स्नैपशॉट्स के लिए --link-dest विधि वाली कई मशीनों पर कई टीबी का बैकअप समाधान लागू किया - यह पूरी तरह से काम करता है। - matja
यदि आपको पसंद है - लिंक्स-डेस्ट बैकअप, चेक आउट करें Dirvish जो हुड के नीचे rsync का उपयोग करता है - hfs


यदि आपको धीमी लिंक पर कुछ बड़ी फ़ाइलों वाली वेबसाइट अपडेट करने की आवश्यकता है, तो आप छोटी फ़ाइलों को इस तरह से स्थानांतरित कर सकते हैं:

rsync -a --max-size = 100K / var / www / there: / var / www /

तो बड़ी फ़ाइलों के लिए यह करें:

rsync -a --min-size = 100K --bwlimit = 100 / var / www / there: / var / www /

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


12
2017-08-26 13:05





मैं किसी अन्य स्थान पर सिंक की गई निर्देशिका से फ़ाइलों का एक छोटा सबसेट रखने की कोशिश करते समय - exस्टिंग विकल्प का उपयोग करता हूं।


10
2017-07-24 11:32



धन्यवाद! यह सिर्फ मुझे कुछ बुरा फ़िल्टर नियम लेखन से बचाया। - benzado


--rsh मेरा है।

मैंने इसे एसएसएच पर सिफर को कुछ तेज़ी से बदलने के लिए उपयोग किया है (--rsh="ssh -c arcfour") की एक श्रृंखला भी स्थापित करने के लिए sshएस (इसके साथ प्रयोग करने की सलाह देते हैं ssh-agent) उन मेजबानों के बीच फ़ाइलों को सिंक करने के लिए जो सीधे बात नहीं कर सकते हैं। (rsync -av --rsh="ssh -TA userA@hostA ssh -TA -l userB" /tmp/foobar/ hostB:/tmp/foobar/)।


8
2017-07-24 17:26





--time-limit

जब इस विकल्प का उपयोग किया जाता है तो rsync टी मिनट के बाद रुक जाएगा और बाहर निकलें। मुझे लगता है कि बड़ी मात्रा में rsyncing जब यह विकल्प उपयोगी है रात के दौरान डेटा (गैर व्यस्त घंटे), और फिर जब यह रोक रहा है लोगों के लिए दिन (व्यस्त घंटे) के दौरान, नेटवर्क का उपयोग शुरू करने का समय।

--stop-at=y-m-dTh:m

यह विकल्प आपको निर्दिष्ट करने की अनुमति देता है कि rsync को रोकने के लिए किस समय।

Batch Mode

बैच मोड का उपयोग कई समान प्रणालियों के अपडेट के समान सेट को लागू करने के लिए किया जा सकता है।


7
2018-06-04 23:51



उपयोगी! मैं प्रक्रिया को मारने से पहले "एट" कमांड का उपयोग कर रहा था - Lionel
स्रोत पैच: rsync.samba.org/ftp/rsync/rsync-patches-3.1.0.tar.gz ; पैच के साथ Win32 बाइनरी शामिल थे: itefix.no/i2/cwrsync - jftuga
दुर्भाग्य से ये विकल्प Redhat / Centos या उबंटू डिस्ट्रोज़ के साथ वितरित rsync में उपलब्ध नहीं हैं। - IanB
@ लियोनेल: आप कैसे उपयोग कर रहे हैं at प्रक्रिया को मारने के लिए? - IMTheNachoMan


यदि आप सोच रहे हैं कि धीमी गति से चलने वाले rsync के साथ कितना दूर है, और फ़ाइलों को सूचीबद्ध करने के लिए -v का उपयोग नहीं किया गया है, तो आप यह पता लगा सकते हैं कि यह कौन सी फाइलें खुलती है:

 ls -l /proc/$(pidof rsync)/fd/*

एक प्रणाली पर है जो / proc है

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

यह मुझे थोड़ा और रोचक जानकारी भी बताता है - दूसरा अंत जाहिर तौर पर छोड़ दिया गया, क्योंकि एक टूटा हुआ सॉकेट लिंक भी था:

/proc/22954/fd/4: broken symbolic link to `socket:[2387837]'

6
2018-01-09 19:08





--archive बैकअप जैसी नौकरियों के लिए एक मानक विकल्प (हालांकि डिफ़ॉल्ट नहीं है), जो सुनिश्चित करता है कि स्रोत फ़ाइलों (अनुमतियों, स्वामित्व इत्यादि) से अधिकांश मेटाडेटा की प्रतिलिपि बनाई गई है।

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


5
2017-10-10 09:14