scp'ing एक पास में कई फाइलें - एक लक्ष्य सर्वर पर कई गंतव्यों के लिए?


9

मैं एक लक्षित मशीन पर एक ही निर्देशिका में एक जोड़ी निर्देशिका में लगभग आधा दर्जन फ़ाइलों को स्कैन करना चाहूंगा।

Ssh कुंजियों का उपयोग किए बिना, क्या यह एक कॉल में संभव है?

उदाहरण के लिए:

scp /path/to/fileA,/anoth/erpath/to/fileB,/yet/more/files/*    #continue next line
    destination:/path/to,/anoth/erpath/to,/yet/more/files

जवाबों:


8

भेजने वाले पक्ष की फ़ाइलों को ज़िप करें और उन्हें प्राप्त पक्ष पर अनज़िप करें।

tar -cf - /path/to/fileA /anoth/erpath/to/fileB /yet/more/files/* |
ssh -C destination 'cd / && tar -xf -'

आप एक sftp सत्र स्क्रिप्ट कर सकते हैं, या सही फ़िल्टर के साथ rsync का उपयोग कर सकते हैं।


यदि आपके पास केवल कुछ फाइलें हैं, तो आपको scp -rसमाधान की सराहना करने की तुलना में कुल मिलाकर कॉपी करना होगा। लेकिन अधिक के लिए यह बहुत तेज है।
xaedes

4

आप कई src से एक गंतव्य के लिए कॉपी कर सकते हैं। scp -r src1 src2 ... dst लेकिन कई गंतव्यों के लिए नहीं ।

एक विकल्प सभी निर्देशिका को एक अस्थायी गंतव्य निर्देशिका में कॉपी करना है। फिर उन्हें बाद में वापस ले जाएं।


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

1

psshपैकेज को देखो । इसकी parallel-scpकमान है। -hविकल्प आपको गंतव्य (एक प्रति पंक्ति) के रूप में कई मेजबानों के साथ पाठ फ़ाइल प्रदान करने की अनुमति देता है।


क्या यह ए से बी तक जाने वाली फ़ाइल के लिए हर बार पासवर्ड माँगने के लिए मिलता है?
वॉरेन

2
उसके लिए मैं उपयोग कर रहा हूं ssh-add। आप दिन की शुरुआत में एक बार अपने क्रेडेंशियल्स टाइप करते हैं। फिर आप अपने आप लॉग इन हो जाते हैं।
कैजुअल कोडर

0

मैं कई फाइलों को कई गंतव्यों पर कॉपी करने के लिए निम्न कमांड का उपयोग करता हूं।

scp -r src {1,2,3} भाग्य {1,2,3}

यह कमांड निम्नलिखित कमांड के सेट की तरह कार्य करता है

scp -r src1 dest1

scp -r src1 dest2

scp -r src3 dest2

scp -r src3 dest3


जब मैं कोशिश करता हूं तो काम नहीं करता है। ubuntu@landslide:~$ scp -r {test1,test2} landslide:/home/ubuntu/{test3,test4} scp: /home/ubuntu/test4: No such file or directoryयह चाहता है कि गंतव्य एक निर्देशिका हो।
sudo
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.