एक सर्वर से दूसरे में लाखों फाइलें स्थानांतरित करना


15

मेरे पास दो सर्वर हैं। उनमें से एक में 15 मिलियन टेक्स्ट फाइलें (लगभग 40 जीबी) हैं। मैं उन्हें दूसरे सर्वर पर स्थानांतरित करने की कोशिश कर रहा हूं। मैंने उन्हें ज़िप करना और संग्रह को स्थानांतरित करना माना, लेकिन मुझे एहसास हुआ कि यह एक अच्छा विचार नहीं है।

इसलिए मैंने निम्नलिखित कमांड का उपयोग किया:

scp -r usrname@ip-address:/var/www/html/txt /var/www/html/txt

लेकिन मैंने देखा कि यह कमांड सिर्फ 50,000 फाइलों को स्थानांतरित करता है और फिर कनेक्शन खो जाता है।

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

यह संभव नहीं है scp, क्योंकि यह हमेशा पहली फ़ाइल से शुरू होता है।

जवाबों:


33

जैसा कि आप कहते हैं, उपयोग करें rsync:

rsync -azP /var/www/html/txt/ username@ip-address:/var/www/html/txt

विकल्प हैं:

-a : enables archive mode, which preserves symbolic links and works recursively
-z : compress the data transfer to minimise network usage
-P : to display a progress bar and enables you to resume partial transfers

जैसा कि @aim अपने उत्तर में कहता है, सुनिश्चित करें कि आपके पास /स्रोत निर्देशिका पर एक अनुगामी है (दोनों पर भी ठीक है)।

मैन पेज से अधिक जानकारी


1
मैं -hमानव-पठनीय इकाइयों का उपयोग करने के लिए ध्वज जोड़ने का सुझाव देता हूं । और यदि आप अधिक वाचालता चाहते हैं, तो आपके पास कुछ विकल्प हैं: -iऔर / या -v/ -vv
nyuszika7h 14

2
आमतौर पर बहुत कम कारण है कि हमेशा scp के बजाय rsync का उपयोग न करें। इसका मूल उपयोग समान है और यह कई अतिरिक्त उपयोगी सुविधाएँ प्रदान करता है।
pimlottc

यदि sshआपके लिए कोई विकल्प नहीं है और आपको एन्क्रिप्शन की आवश्यकता नहीं है या आप मेरी स्क्रिप्ट s3.amazonaws.com/skaperen/rsend
Skaperen

7

बस ssh पर rsync का उपयोग करें!

rsync -av username@ip:/var/www/html/txt /var/www/html/

मैन पेज से:

-a , - आर्काइव : यह -rlptgoD के बराबर है। यह कहने का एक त्वरित तरीका है कि आप पुनरावर्तन चाहते हैं और लगभग सभी चीज़ों को संरक्षित करना चाहते हैं (-H एक उल्लेखनीय चूक है)। उपरोक्त तुल्यता का एकमात्र अपवाद तब है जब -फाइल्स-से निर्दिष्ट किया जाता है, जिसमें केस -आर निहित नहीं है।

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

ध्यान दें कि मैंने फ़ोल्डरों के अंत में स्लैश का उपयोग कैसे किया - यह महत्वपूर्ण है


आपको अनुगामी स्लैश के महत्व के बारे में अधिक जानकारी जोड़नी चाहिए। से rsyncमैन्युअल पृष्ठ: "स्रोत पर स्लैश इस व्यवहार में बदलाव लाती गंतव्य पर एक अतिरिक्त निर्देशिका स्तर बनाने से बचने के लिए आप अर्थ के रूप में एक स्रोत पर / पीछे के बारे में सोच सकते हैं।" इस निर्देशिका "के रूप में करने का विरोध किया" की सामग्री की प्रतिलिपि निर्देशिका को नाम से कॉपी करें ", लेकिन दोनों ही मामलों में युक्त निर्देशिका की विशेषताएँ गंतव्य पर मौजूद निर्देशिका में स्थानांतरित हो जाती हैं।"
nyuszika7h

... और झंडों का मतलब -av?
Mrhhite

0

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

lftp -u username,password sftp://ip-address -e 'mirror --only-newer --no-dereference --parallel=5 /remote/path/ /destination/;quit'

यदि एक कनेक्शन टूट जाता है, तो यह फिर से कनेक्ट और जारी रहेगा। यदि आप स्थानांतरण को तोड़ते हैं तो यह मौजूदा फ़ाइलों को छोड़ देगा और जारी रखेगा।

http://lftp.yar.ru/


0

एक और तरीका ssh पर एक (वैकल्पिक रूप से संपीड़ित) टार-फाइल को पाइप करके है:

tar -czf - ./* | ssh other.host.foo "cd /tmp; tar -xzf-"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.