फ़ाइलों को कॉपी करने का सबसे तेज़ तरीका


15

यदि हमारे पास हमारे बिल्ड सर्वर (CCNET) पर एक सफल बिल्ड है, तो सभी ASP.NET वेबसाइट फाइलों को वर्चुअल डायरेक्टरी (% output_dir%) में कॉपी किया जाता है, ताकि गैर-डेवलपर्स वेबसाइट के नवीनतम संस्करण को देख / परीक्षण कर सकें। बिल्ड के अंत में निम्न बैट फ़ाइल निष्पादित की जाती है।

rmdir /s /q "%output_dir%"
mkdir "%output_dir%"
xcopy "%source_dir%*"  "%output_dir%" /e /c /i /q /-y

समस्या यह है कि मुझे नकल धीमी लगती है और सोच रहा था कि क्या विंडोज 2008 में कोई कॉपी कमांड उपलब्ध हैं जो कि xcopy से तेज हैं? स्रोत और गंतव्य एक ही ड्राइव पर हैं। नीचे हम दलीलें हैं जिनका उपयोग हम नकल करते समय करते हैं।

/e = copies directories and sub directories including empty ones.
/c = continues copying even if there are errors
/i = if destination does not exist destination is directory
/q = don't display filenames
/-y = confirm overwrite

जवाबों:


21

केवल प्रदर्शन के दृष्टिकोण से , xcopy या robocopy आपको समान परिणाम देगा। मैं कुछ तुलना करने के लिए Windows Vista 64-बिट SP2 बॉक्स पर परीक्षण के एक जोड़े के माध्यम से भाग गया। सभी प्रतियां एक आंतरिक 7200 आरपीएम साटा II डिस्क और एक बाहरी यूएसबी 2.0 ड्राइव के बीच या उसी आंतरिक ड्राइव पर जहां खुद को संकेत दिया गया था, के बीच किया गया था। कोई विशेष सेटअप नहीं किया गया था (अपने खुद के दिमाग को बनाएं यदि वह परीक्षण को अमान्य / मान्य करता है), केवल निष्पादित करने के लिए एक बैच फ़ाइल में कमांड इनपुट करने के लिए। PowerShell का उपयोग प्रारंभ को रोकने और समय को रोकने के लिए किया गया था। यहां से गुजरने के बाद कुछ उपकरण मेरे द्वारा खेले जाने वाले औजारों से औसत हैं:

फ़ाइल: 732,909,568 बाइट्स (698 एमबी), 1 आईएसओ फाइल एक ही आंतरिक डिस्क पर अलग-अलग निर्देशिका में कॉपी की गई।

copy      6 secs (ex. copy G:\folder1\* G:\folder2\)
xcopy     6 secs (ex. xcopy G:\folder1 G:\folder2 /I /E /Y /R)
robocopy  6 secs (ex. robocopy G:\folder1\ G:\folder2 /E /NP)
teracopy 28 secs (ex. TeraCopy.exe Copy G:\folder1\ G:\folder2\)
fastcopy 19 secs (ex. fastcopy.exe /auto_close G:\folder1 /to=G:\folder2)  

फ़ाइल: 732,909,568 बाइट्स (698 एमबी), 1 आईएसओ फाइल बाहरी यूएसबी डिस्क पर कॉपी की गई।

copy     36 secs (ex. copy G:\folder1\* I:\folder2\)
xcopy    35 secs (ex. xcopy G:\folder1 I:\folder2 /I /E /Y /R)
robocopy 36 secs (ex. robocopy G:\folder1\ I:\folder2 /E /NP)
teracopy 36 secs (ex. TeraCopy.exe Copy G:\folder1\ I:\folder2\)
fastcopy 38 secs (ex. fastcopy.exe /auto_close G:\folder1 /to=I:\folder2)  

फ़ाइलें: 45,039,616bytes (42.9MB) 5 यादृच्छिक फ़ाइलें बाहरी USB डिस्क पर कॉपी की गईं

copy      6 secs (ex. copy G:\folder1\* I:\folder2\)
xcopy     5 secs (ex. xcopy G:\folder1 I:\folder2 /I /E /Y /R)
robocopy  6 secs (ex. robocopy G:\folder1\ I:\folder2 /E /NP)
teracopy 12 secs (ex. TeraCopy.exe Copy G:\folder1\ I:\folder2\)
fastcopy  6 secs (ex. fastcopy.exe /auto_close G:\folder1 /to=I:\folder2)

फ़ाइलें / निर्देश: 1,087,180,800 बाइट्स (1.01 जीबी), 27 फाइलें / 8 निर्देशिका बाहरी USB डिस्क पर कॉपी की गई।

copy     *Not included in test
xcopy    57 secs (ex. xcopy G:\folder1 I:\folder2 /I /E /Y /R)
robocopy 58 secs (ex. robocopy G:\folder1\ I:\folder2 /E /NP)
teracopy 56 secs (ex. TeraCopy.exe Copy G:\folder1\ I:\folder2\)
fastcopy 60 secs (ex. fastcopy.exe /auto_close G:\folder1 /to=I:\folder2)

इसका मतलब यह नहीं है कि एक संपूर्ण परीक्षा है, लेकिन इस शैली में कुछ अधिक लोकप्रिय उपकरणों पर बस एक त्वरित वास्तविक दुनिया परिदृश्य फेंकने से पता चलता है कि आपका सुंदर सुरक्षित या तो xcopy या Robocopy (केवल प्रदर्शन के दृष्टिकोण से) के साथ चिपका हुआ है। इसके अलावा रोबोकॉपी विकल्प /NP(नो प्रोग्रेस) आपको 0 समय बचाता है। हालांकि इसका मतलब यह नहीं है कि आप xcopy के अलावा किसी अन्य चीज़ का उपयोग करने से लाभ नहीं उठा सकते। रोबोकॉपी एक शानदार उदाहरण है ( विकिपीडिया से ):

रोबोकॉपी निर्मित विंडोज़ से ऊपर और उससे परे की क्षमताओं के लिए उल्लेखनीय है
, जिसमें निम्नलिखित शामिल हैं:

  • नेटवर्क आउटेज को सहन करने की क्षमता और प्रतिलिपि को फिर से शुरू करना जहां यह पहले छोड़ दिया गया था (अधूरी फाइलें 1980-01-01 की तारीख की मोहर के साथ नोट की जाती हैं और इसमें रिकवरी रिकॉर्ड होता है ताकि रोबोकॉपी को पता चलता है कि कहां से जारी रखना है)।
  • कई बार भूल जाने वाले कमांड लाइन स्विच की आवश्यकता के बिना विशेषताओं, मालिक जानकारी, वैकल्पिक डेटा स्ट्रीम, ऑडिटिंग जानकारी और डिफ़ॉल्ट रूप से टाइमस्टैम्प की प्रतिलिपि बनाने की क्षमता।
  • NTFS ACL की प्रतिलिपि बनाने की क्षमता, (जब / COPYALL प्रदान की गई है), और Windows NT "बैकअप सही" (/ B) का दावा करने के लिए, इसलिए एक व्यवस्थापक संपूर्ण निर्देशिका की प्रतिलिपि बना सकता है, जिसमें व्यवस्थापक के लिए पठनीयता से इनकार की गई फ़ाइलें शामिल हैं।
  • यदि कोई फ़ाइल नहीं खोली जा सकती है, तो प्रोग्राम के एक नंबर के साथ डिफ़ॉल्ट रूप से दृढ़ता।
  • एक "मिरर" मोड, जो पेड़ों को वैकल्पिक रूप से उन फ़ाइलों को गंतव्य से हटाकर सिंक में रखता है जो अब स्रोत में मौजूद नहीं हैं।
  • बड़ी संख्या में फ़ाइलों की प्रतिलिपि बनाने की क्षमता जो अन्यथा अंतर्निहित XCOPY उपयोगिता को क्रैश कर देगी।
  • कमांड लाइन पर एक प्रगति सूचक जो लगातार अद्यतन करता है।
  • 256 अक्षरों से अधिक लंबी फ़ाइल और फ़ोल्डर नामों की प्रतिलिपि बनाने की क्षमता - एक सैद्धांतिक 32,000 वर्णों तक - बिना त्रुटियों के।

5

मैं आमतौर पर उपयोग करता हूं:

robocopy source dest /E /MIR

या मापदंडों के कुछ अन्य प्रकार - शायद /NFL /NDL /NS /NC /NP"शांत" से मेल खाने के लिए


हां, / एनपी शीघ्र लूटने के लिए जरूरी है
इवो ​​लोसर

जब यू व्होल स्रोत के रूप में ठीक उसी तरह की सामग्री बनाते हैं, जिस तरह से मैं रोबोकॉपी कमांड से उपयोग / मीर या / PURGE करता हूं।
इवो ​​लोसर

1

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

इसके अतिरिक्त, आपको FTP का उपयोग करना चाहिए, और CIFS को पूरी तरह से छोड़ देना चाहिए। Eseutil.exe एक और उपयोगिता है जिसे आप वहां फेंक सकते हैं। (एक एक्सचेंज उपयोग जो अन्यत्र उपयोग किया जा सकता है, इसके साथ यह चार आश्रित dll है।)

फिर मैं आपके परिणाम देखना चाहूंगा।


1

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


1

आप कहते हैं कि स्रोत और गंतव्य एक ही ड्राइव पर हैं, लेकिन क्या वे दोनों बिल्ड सर्वर पर हैं?

यदि बिल्ड सर्वर स्रोत और गंतव्य का स्थान है, तो एक फ़ोल्डर या दूसरे को दूसरे ड्राइव पर ले जाने पर विचार करें, हो सकता है कि किसी अन्य नियंत्रक पर।

यदि बिल्ड सर्वर स्रोत और गंतव्य का स्थान नहीं है (बिल्ड ड्रॉप्स हमेशा उस सर्वर पर नहीं हैं, जिस पर वे बनाए गए हैं), सर्वर पर एक कार्य बनाने पर विचार करें जहां स्रोत और गंतव्य फ़ोल्डर रहते हैं। फिर बस उस कार्य को दूर से किक करें।


1

मुझे वर्षों में कई प्रतियाँ करनी हैं। हमारे पास एक Windows Server 2008 R2 मशीन है जिसमें 12M से अधिक छवियों के साथ एक एकल निर्देशिका है (लगभग 400GB)।

जाहिर है मैं पसंद करूंगा यह इतनी बड़ी निर्देशिका नहीं होगी लेकिन:

  • XCOPY बड़े फ़ोल्डर की प्रतिलिपि को संभालता है, लेकिन बड़ी निर्देशिका से आगे बढ़ने की कोशिश करते समय क्रैश हो जाता है।
  • ROBOCOPY समस्या के बिना प्रतिलिपि को संभालता है और जब इसमें नकल की जाती है तो यह बेहतर प्रगति का संकेतक होता है।
  • छोटे निर्देशिकाओं पर XCOPY तेज है।

वैसे भी, मैंने सोचा था कि मैं वास्तव में बड़ी निर्देशिका की असामान्य प्रकृति के कारण उनके साथ अपना अनुभव साझा करूंगा।

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