2012-11-04 12 views
5

मैं होस्टिंग प्रदाताओं को स्विच कर रहा हूं और लाखों अपलोड की गई फ़ाइलों को नए सर्वर पर स्थानांतरित करने की आवश्यकता है। सभी फाइलें एक ही निर्देशिका में हैं। हाँ। आपने इसे सही ढंग से पढ़ा है। ;)मैं कई फ़ाइलों को एक नए सर्वर पर कुशलतापूर्वक कैसे स्थानांतरित कर सकता हूं?

अतीत में मैं इस किया है:

  1. स्रोत सर्वर
  2. scp नए सर्वर
  3. खोल दो
  4. ले जाएँ निर्देशिका के लिए ज़िप से फ़ाइलों के सभी पिन उचित स्थान
    • किसी भी कारण से चरण 1 से मेरे ज़िप हमेशा उनके साथ पथ लाते हैं और मुझे एमवी की आवश्यकता होती है।

पिछली बार मैं ऐसा किया यह लगभग 4-5 दिन का समय लगा पूरा करने के लिए और कहा कि अब मैं क्या है के बारे में 60% थी।

मैं एक बेहतर तरीके की उम्मीद कर रहा हूं। आपकी क्या सलाह है?

फ़ाइल संरचना धोया गया है। कुछ इस तरह: -: 3 पत्र उपसर्गों के आधार पर मिनी ज़िप टन में

स्प्लिट ज़िप AAAAAAAAAA.jpgZZZZZZZZZZ.txt

यहाँ एक विचार हम चारों ओर घालना कर रहे हैं।

AAAAAAAAAA.jpg - AAAZZZZZZZ.gif => AAA.zip 

सैद्धांतिक लाभ:: की तरह कुछ

  • हस्तांतरण में तेजी लाने सकता है, कई ज़िप एक ही बार में
  • समय में विफल रहा है हस्तांतरण के लिए खो दिया सीमित हो सकती है हस्तांतरण करने के लिए अनुमति देता है। (एक हस्तांतरण अंततः विफल करने के लिए 2 दिनों के इंतजार कर रहे भयंकर है)

सैद्धांतिक विपक्ष:

  • प्रारंभिक ज़िप काफी बाद जिप एक वाइल्डकार्ड के माध्यम से फ़ाइलों को देखना होता है (AAA*) को धीमा कर सकता है , शायद एक ही समय में सभी ज़िपों का उपयोग करके, कई ज़िप थ्रेड को एक बार चलाकर ऑफसेट करें।
  • जटिलता?

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

आपको क्या लगता है? आपको इसे कैसे करना होगा?

(हाँ, मैं इन अमेज़न S3 के अंत में आगे बढ़ जाएगा, और मैं सिर्फ उन्हें एक डिस्क जहाज जाएगा, लेकिन इस बीच में, मैं उन्हें कल की जरूरत है!)

+3

rsync के बारे में कैसे? –

+1

इस तरह की स्थिति में मेरी प्राथमिक चिंता ट्रांसफर की तुलना में स्थानांतरण को दोहराना नहीं होगा। मुझे एक बार अलग-अलग स्थानों से 100 जीबी की फाइलों को स्थानांतरित करना पड़ा। मैंने बड़ी फ़ाइल के साथ प्रयास किया और कुछ यादृच्छिक त्रुटि के कारण अपलोड विफल रहा और उसे पूरी चीज फिर से करनी पड़ी। तो मैंने जो किया वह फाइलों को 6 जीबी भाग में विभाजित किया गया था और उन्हें एक समय में समानांतर (3-4) भेज दिया गया था। यह बहुत तेज और अधिक विश्वसनीय था। आप अपने लिए स्वचालित रूप से ऐसा करने के लिए एक स्क्रिप्ट बना सकते हैं। – specialscope

उत्तर

10

तुम वास्तव में कई विकल्प हैं, मेरा पसंदीदा rsync का उपयोग करेगा।

rsync [dir1] [dir2] 

यह आदेश वास्तव में निर्देशिका की तुलना करेंगे, और समन्वयन केवल उन दोनों के बीच मतभेद।

इस के साथ

, मैं निम्नलिखित

rsync -z -e ssh [email protected]:/var/www/ /var/www/ 

-z पिन
-e शेल कमांड

तुम भी SSH के माध्यम से SFTP, एफ़टीपी इस्तेमाल कर सकते हैं उपयोग करने के लिए सबसे likeley होगा।

या यहां तक ​​कि wget

wget -rc ssh://[email protected]:/var/www/ 
+1

rsync को प्रत्येक फ़ाइल की तुलना करने के प्रयास की आवश्यकता नहीं होगी? रिमोट निर्देशिका खाली है, तो उस खर्च को क्यों जोड़ें? साथ ही, लाखों फ़ाइलों को एक (या यहां तक ​​कि 1000) संपीड़ित फ़ाइलों की तुलना में अधिक कुशल स्थानांतरित कर रहा है? – Ryan

+0

मुझे तुलना के बारे में निश्चित नहीं है।और आपने मूल रूप से संपीड़न का सुझाव दिया है, इसलिए मैंने इसे यहां एक विकल्प के रूप में यहां फेंक दिया। क्यों न सिर्फ एक मानक एफ़टीपी कनेक्शन ..? या यहां तक ​​कि wget -rc ssh: //[email protected]:/var/www/ –

+0

रुनक की तुलना डिस्कब्लॉक्स के हैंश पर मौजूद है (मौजूदा फाइलों के लिए) गैर-मौजूदा फ़ाइलों के लिए तुलना करने के लिए कुछ भी नहीं है (* को छोड़कर * प्रतिलिपि के बाद अंतिम सत्यापन) – wildplasser

1

मैं लिनक्स/यूनिक्स दुनिया से हूँ। मैं टैर का उपयोग प्रत्येक सेट आकार के प्रत्येक टैर फ़ाइलों को बनाने के लिए करता हूं। उदा।

tar -cML $MAXIMUM_FILE_SIZE_IN_KILOBYTES --file=${FILENAME}}_{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}.tar ${THE_FILES} 

मैं आपकी .txt फ़ाइलों को बड़ा होने तक पुन: संपीड़न छोड़ दूंगा। आपको recompressing .jpeg फ़ाइलों का अधिक लाभ नहीं मिलेगा, और यह बहुत सी CPU (और वास्तविक) समय खाएगा।

मैं देखता हूं कि आपका ट्रैफ़िक आकार कैसे काम करता है। आपके पास कितने समवर्ती कनेक्शन हो सकते हैं? प्रति कनेक्शन कितनी बैंडविड्थ? कुल कितना?

मैंने एसपीपी के साथ कुछ रोचक चीजें देखी हैं। एक होम नेटवर्क का परीक्षण, एसपीपी एक घुड़सवार साझा smbfs फाइल सिस्टम पर कॉपी करने की तुलना में बहुत कम थ्रूपुट दिया। मैं पूरी तरह से स्पष्ट क्यों नहीं हूँ। यद्यपि यह वांछनीय हो सकता है यदि एसपीपी प्रतिलिपि सत्यापित कर रहा है और त्रुटियों पर पुन: ट्रांसमिशन का अनुरोध कर रहा है। (इंटरनेट पर प्रसारित एक पैकेट में इसे बनाने में त्रुटि की बहुत छोटी संभावना है। किसी भी प्रकार के सत्यापन चरण के बिना यह बड़ी डेटा सेट के साथ एक वास्तविक समस्या है। आप एमडी 5 हैश चलाने के लिए ...)

यदि यह एक वेबसर्वर है, तो आप हमेशा wget का उपयोग कर सकते हैं। हालांकि यह अत्यधिक अक्षम लगता है ...

+0

संपीड़न के बारे में सहमत। हमारी अधिकांश फाइलें छवियां हैं और संपीड़ित नहीं होती हैं। हालांकि चिंता केवल एक (या 1000) की बजाय कई फाइलों (10 एम +) को स्थानांतरित करने की कीमत के बारे में है। क्या आपको लगता है कि एसपीपी फ्रंट एंड पर संपीड़न से बेहतर संभाल सकता है? मुझे I/O व्यय और कनेक्शन व्यय को कैसे गेज करना चाहिए? – Ryan

0

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

संबंधित मुद्दे

 संबंधित मुद्दे