2013-04-04 9 views
32

मैं इस तरह के रूप rsync उपयोग करने में सक्षम नहीं होगा संरक्षण:rsync कई दूरस्थ निर्देशिका निर्देशिका पथ

rsync -e ssh [email protected]:/path/to/file:/path/to/second/file/ /local/directory/ 

या मैं कुछ और करने के लिए होता है?

+0

प्रश्न का शीर्षक ("दूरस्थ निर्देशिका") प्रश्न के शरीर ("दूरस्थ फाइलें") से अलग है। – Abdull

+0

मैं निर्देशिकाओं को जितना ही फाइलों के साथ ही संरक्षित करने की कोशिश कर रहा था। – Pred

उत्तर

41
rsync आदमी पृष्ठ से

सीधे:

The syntax for requesting multiple files from a remote host is done 
by specifying additional remote-host args in the same style as the 
first, or with the hostname omitted. For instance, all these work: 

    rsync -av host:file1 :file2 host:file{3,4} /dest/ 
    rsync -av host::modname/file{1,2} host::modname/file3 /dest/ 
    rsync -av host::modname/file1 ::modname/file{3,4} 

इसका मतलब यह है अपने उदाहरण एक अंतरिक्ष दूसरा पथ से पहले जोड़ा होना चाहिए:

rsync -e ssh [email protected]:/path/to/file :/path/to/second/file/ /local/directory/ 

मैं आप पहली बार सुझाव है -n साथ प्रयास करता हूँ या --dry-run विकल्प, तो आप देखेंगे कि प्रतिलिपि (और संभावित हटाने) वास्तव में किए जाने से पहले क्या किया जाएगा।

+0

जब मैंने अपने प्रश्न पूछा, तो मैंने इस बारे में नहीं सोचा, लेकिन सूखे रन ने काम किया। अब, अगर मैं अपने स्रोत पर एकाधिक निर्देशिकाओं से निर्दिष्ट करना चाहता हूं, तो क्या मैं एक से अधिक गंतव्य निर्देशिका निर्दिष्ट करूंगा? या क्या पूरे फ़ोल्डर और इसकी सामग्री को गंतव्य पर कॉपी करने का कोई तरीका है? जब मैंने पहली बार rsync कमांड किया था, तो उसने फ़ाइल की सामग्री की प्रतिलिपि बनाई थी। मैन पेज में यह --dirs या use -r के बारे में कुछ कहता है। या इससे कोई फर्क नहीं पड़ता कि मैंने स्रोत फ़ाइल नाम के अंत में/छोड़ दिया है? – Pred

+0

यदि आप निर्देशिका कॉपी करना चाहते हैं, तो आपको केवल स्रोत के रूप में निर्देशिका को पथ देना होगा। यदि आप '-r' (या' -a' मैन पेज उदाहरण के रूप में) का उपयोग कर रहे हैं, तो आप इस निर्देशिका की संरचना को संरक्षित करते हुए, संपूर्ण स्रोत निर्देशिका को अपने गंतव्य में कॉपी कर लेंगे। – Tonin

+20

वंशावली के लिए: यह स्पष्ट रूप से rsync के पुराने संस्करणों के लिए सच नहीं है, जैसे कि rsync 2.6.9 जो ओएसएक्स 10.9 के साथ आता है; वह संस्करण चाहता है कि आप 'rsync -av होस्ट:' file1 file2 '' करना चाहते हैं, जो फ़ाइल नामों में रिक्त स्थान होने पर अजीब हो जाता है। (सौभाग्य से, होमब्रू का एक और हालिया संस्करण है।) – Dougal

2

@tonin का एक वास्तविक उदाहरण है। लाइव सर्वर से विशिष्ट निर्देशिका डाउनलोड करें

rsync -av [email protected]:/var/www/html/cls \ 
:/var/www/html/index.php \ 
:/var/www/html/header.inc \ 
:/var/www/html/version.inc.php \ 
:/var/www/html/style.css \ 
:/var/www/html/accounts \ 
:/var/www/html/admin \ 
:/var/www/html/api \ 
:/var/www/html/config \ 
:/var/www/html/main \ 
:/var/www/html/reports . 
संबंधित मुद्दे