लिनक्स रोबोकॉपी के बराबर है?


34

यह एक तरह से मज़ेदार है, ऐसे बहुत सारे तरीके हैं जिनमें लिनक्स कमांड लाइन टूल विंडोज वाले से बहुत बेहतर हैं, लेकिन एक चीज़ जो मुझे नहीं मिली है वह है रोबोकॉपी । रोबोकॉपी की तुलना में अधिक बहुमुखी है cp, और मैं यह नहीं जान सकता कि लिनक्स उपकरणों के साथ मुझे क्या करना है।

एक विशिष्ट उपयोग मामला यह है कि मेरे पास ज्यादातर समान फ़ाइलों वाली दो निर्देशिकाएं हैं, लेकिन एक में नई स्रोत फाइलें हैं और एक में ऐसी सामग्री फाइलें हैं जो अन्य निर्देशिका के पास नहीं हैं, और संभवतः नए स्रोत फाइलें (एक वेबसाइट के लिए) हैं। मैं बाद की निर्देशिका से फ़ाइलों को पूर्व में कॉपी करना चाहता हूं, नई सामग्री फ़ाइलों को जोड़ना और इस तरह, लेकिन गंतव्य निर्देशिका में नई फ़ाइलों को अधिलेखित नहीं करना।

मैंने यह पता लगाने की कोशिश की कि लिनक्स में यह कैसे करना है शायद आधे घंटे के लिए, मैंने फैसला किया कि मुझे बैश स्क्रिप्टिंग या कुछ सीखना होगा जो मुझे चाहिए था, और फिर मुझे एहसास हुआ कि मैं सिर्फ रोबोकॉपी का उपयोग कर सकता हूं। मेरी कुछ अन्य आवश्यकताएं भी थीं। मैं मूल रूप से एक SVN रिपॉजिटरी से एक Python (Django) वेबसाइट को Git रिपॉजिटरी में परिवर्तित कर रहा था, और मैं यह सुनिश्चित करना चाहता था कि मैंने SVN में परिवर्तन नहीं किए हैं। हालाँकि, मैं .svnनिर्देशिकाओं और .pycसंकलित पायथन फ़ाइलों को सशर्त रूप से बाहर करना चाहता था । निम्नलिखित रोबोकॉपी कमांड वास्तव में वही करता है जो मैं चाहता हूं:

robocopy source destination /XO /E /XD .svn /XF *.pyc

क्या लिनक्स में रोबोकॉपी के बराबर कोई है? मैंने rsyncसंक्षेप में देखा , लेकिन ऐसा लग रहा था कि मुझे फ़ोल्डरों को सिंक करने का प्रयास करने से पहले एक rsync सर्वर सेट करना होगा।


1
आपको rsync सर्वर सेट करने की आवश्यकता नहीं है, ss पर rsync स्वचालित रूप से सर्वर मोड में दूरस्थ मशीन पर rsync चलाता है (एक तरह से जो केवल उस कनेक्शन के लिए उपयोग किया जाता है, अपने खाते के तहत चल रहा है, और जब यह किया जाता है तो स्वचालित रूप से बंद हो जाता है) ।
CBSB

"... लेकिन ऐसा लगता था कि मुझे फ़ोल्डरों को सिंक करने का प्रयास करने से पहले एक rsync सर्वर सेट करना होगा।" मैंने वर्षों से रुपीस का उपयोग किया है और कभी भी एक औपचारिक रुपी सर्वर को सेटअप नहीं करना पड़ा है। वास्तव में macOS पर कई सिंकिंग / बैकअप टूल कार्बन कॉपी क्लोनर जैसे सर्वर को सेट करने की आवश्यकता के बिना रुपी रूप से कोर का उपयोग करते हैं और मेरा मानना ​​है कि - सुपरडुपर!
जेकलॉल्ड

जवाबों:


38

ऐसा लगता है कि rsync निश्चित रूप से आप के बाद क्या है। एक मशीन से दूसरी मशीन में फाइल कॉपी करने के लिए आपको 'rsync सर्वर' सेट करने की आवश्यकता नहीं है। Rsync फाइल को SFTP (SSH फाइल ट्रांसफर) पर कॉपी करने का समर्थन करता है, जिसे ज्यादातर लिनक्स बॉक्स पहले ही सक्षम कर चुके हैं (यदि मैन्युअल रूप से अक्षम नहीं हैं)।

अधिक विवरण के लिए rsync के साथ सिस्टम पर Lifehacker की मिरर फ़ाइलें देखें:

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

रुपीक्स नि: शुल्क (भाषण में) और क्रॉस प्लेटफॉर्म है, जिसका अर्थ है कि यह ऑपरेटिंग सिस्टम (विंडोज / सिगविन, मैक ओएस, लिनक्स) के बीच फाइलों को सिंक करता है; यह ssh पर काम करता है इसलिए यह एन्क्रिप्टेड और सुरक्षित है; एफ़टीपी के विपरीत यह वृद्धिशील , इसलिए केवल भागों का बदला फ़ाइलें स्थानांतरित कर रहे हैं, न कि पूरी फ़ाइलें , जो बनाता है यह शीघ्र गोंजालेज की तरह जाना; और तथ्य यह है कि यह कमांड लाइन है, यह स्क्रिप्ट करने योग्य और आसानी से स्वचालित बनाता है।


Rsync मैन पेज पढ़ें - ssh (w / o एक स्पष्ट rsync सर्वर) का उपयोग करने के लिए आप "-e ssh" का उपयोग करेंगे
डॉग हैरिस

1
rsync कमाल है! और आपको user@host.com जैसे किसी भी पथ का उपयोग करने की आवश्यकता नहीं है: / blah / स्वचालित रूप से इसका उपयोग करेगा।
द ह्वेक-टू गीक

मम्म, वो मस्त है। तो यह scpssh पर स्थानांतरित करने के लिए मूल रूप से समान सिंटैक्स का उपयोग कर सकता है ? मैं वास्तव में एक मशीन पर फ़ाइलों को स्थानांतरित करने की कोशिश कर रहा था, लेकिन यह जानना अच्छा है।
इब्राहिम

1
दुर्भाग्य से, यह उत्तर पूरी तरह से सही नहीं है: जबकि यह SSH का उपयोग करता है, यह SFTP का उपयोग नहीं करता है। इसके बजाय, यह rsync प्रोटोकॉल का उपयोग करके सीधे दूरस्थ rsync उदाहरण के साथ संचार करता है।
डैनियल बी

15

rsync एक मशीन से डकैती की तरह एक डायरेक्टरी से दूसरी डायरेक्टरी में फाइल कॉपी करेगा। यहाँ rsync कमांड है जो आपके रोबोकॉपी कमांड के बराबर है:

rsync -auv --exclude '.svn' --exclude '*.pyc' source destination

यह स्रोत को गंतव्य तक पुन: कॉपी करेगा और पुरानी फ़ाइलों के साथ-साथ '.svn' और '.pyc' निर्देशिकाओं / फ़ाइलों को भी बाहर कर देगा।


सिवाय यह एक भी थ्रेडेड तरीके से करेगा, जिसके परिणामस्वरूप आपके भंडारण समाधान में अप्रत्यक्षता की मात्रा के आधार पर 5x से अधिक हिट हो सकता है।
मिखाइल

जब कोई फ़ाइल स्रोत से हटा दी जाती है, तो वह गंतव्य पर सिंक नहीं करता है।
जिरोंग हू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.