कॉपी की गई फाइलों की शुद्धता की जांच करें


14

जब मैं कॉपी करता हूं कि 50+ जीबी (विभिन्न स्वरूपों सहित 30,000 फाइलें) एक आंतरिक हार्ड ड्राइव से बाहरी ड्राइव पर फ़ाइलों का है तो क्या यह पता लगाने का कोई तरीका है कि क्या सब कुछ सही तरीके से कॉपी किया गया है? इसके अलावा, अगर मैं ऑपरेशन रद्द करके बीच में रोकने के लिए और बाद में कहते हैं कि मर्ज जब आपरेशन जारी शुद्धता एक हिट ले जाएगा?

मैं जैसे अनुप्रयोगों का उपयोग कर सकता हूं, back-in-timeलेकिन मैं फ़ाइलों की नकल करने में बहुत ही लापरवाह हूं और अगली बार मैं copyऑपरेशन का उपयोग करने और mergeइसके बजाय कहने का इरादा रखता हूं replace। क्या बड़ी संख्या में फ़ाइलों की प्रतिलिपि बनाते समय यह उचित है?


2
आपको यहां एक उत्तर मिल सकता है
ताकत

जवाबों:


17

मैं बैकअप / पुनर्स्थापना को सत्यापित करने के लिए हैशदीप का उपयोग कर रहा हूं और कभी-कभी फ़ाइल सिस्टम भ्रष्टाचार के लिए जाँच करने के लिए RAID में।

गति इस बात पर निर्भर करती है कि आप किस हैश फ़ंक्शन का उपयोग करते हैं (कुछ अन्य की तुलना में अधिक सीपीयू गहन हैं) और साथ ही आपके डिस्क की रीड स्पीड भी। मेरे सिस्टम पर hashdeepmd5 और 300 MB / s रीड स्पीड के साथ लगभग 1 टीबी / घंटा प्रोसेस या वेरीफाई कर सकता है।


चेकसमों की गणना करने और उन्हें फ़ाइल में संग्रहीत करने पर उदाहरण:

cd my-data
hashdeep -rlc md5 . > ~/checksums.txt

पैरामीटर:

  • r - पुनरावर्ती
  • l - सापेक्ष रास्तों का उपयोग करें
  • c - हैश फ़ंक्शन निर्दिष्ट करें
  • . - वर्तमान निर्देशिका में पुनरावर्ती शुरू
  • > - निर्दिष्ट फ़ाइल पर आउटपुट पुनर्निर्देशित करें

मैन पेज देखें ।


चेकसम को सत्यापित करने और मतभेदों की सूची को मुद्रित करने पर उदाहरण:

$ cd /mnt/my-backup
$ hashdeep -ravvl -k ~/checksums.txt .
hashdeep: Audit passed
          Files matched: 40914
Files partially matched: 0
            Files moved: 0
        New files found: 0
  Known files not found: 0

पैरामीटर:

  • a - ऑडिट (ज्ञात चेकसम की सूची के साथ तुलना करें)
  • v- क्रिया (बेमेल की सूची प्राप्त करने के लिए, एकाधिक vs का अर्थ अधिक क्रिया है)
  • k - ज्ञात हैश की फ़ाइल

ध्यान दें कि मार्च 2016 hashdeepतक छोड़ दिया जाना प्रतीत होता है ।


14

यह rsync के लिए सही कार्य की तरह दिखता है । रुपये की तुलना और नकल अलग है।

rsyncजब मैं अपने प्रश्न देखा उपयोगिता पहले मेरे मन में पॉप। नीचे की तरह कुछ करना जल्दी से दिखा सकता है कि कौन सी फाइलें निर्देशिका में हैं aलेकिन इसमें नहीं b:

$ rsync -rcnv a/* b/

-r will recurse into the directories
-c will compare based on file checksum
-n will run it as a "dry run" and make no changes, but just print out the files 
   that would be updated
-v will print the output to stdout verbosely

यह एक अच्छा विकल्प है क्योंकि आप फ़ाइलों की सामग्री की तुलना कर सकते हैं और साथ ही यह सुनिश्चित कर सकते हैं कि वे मेल खाते हैं। rsyncइस प्रकार के उपयोग के मामले के लिए डेल्टा एल्गोरिथ्म को अनुकूलित किया गया है। फिर यदि आप bसामग्री से मेल खाना चाहते हैं a, तो आप -nवास्तविक सिंक करने के लिए विकल्प को हटा सकते हैं ।

कुछ संबंधित प्रश्न:


1
rsync निश्चित रूप से इस काम के लिए उपकरण है, लेकिन इसकी तुलना और प्रतिलिपि भिन्न नहीं है, प्रति से। यह आकार और हैश का उपयोग करके फ़ाइलों की तुलना करता है।
जस्टिन फोर्स

@JustinForce आकार का उपयोग? निश्चित रूप से, विभिन्न आकार यह निश्चित करते हैं कि फ़ाइल बिल्कुल समान नहीं है, लेकिन rsync बहुत बहुमुखी है, यह सभी फ़ाइलों को फिर से पढ़ने से बचने के लिए वैकल्पिक रूप से मेटाडेटा (जैसे समय) पर भरोसा कर सकता है। नेटवर्क के माध्यम से कॉपी करते समय, यह उन्हें स्थानांतरित करने से बचने के लिए सामान्य भागों का सूक्ष्मता से पता लगाने के लिए एक रोलिंग हैश की गणना करता है, लेकिन डिफ़ॉल्ट हैश द्वारा स्थानीय ड्राइव इस भूमिका को नहीं निभाते हैं (यदि सभी में उपयोग किया जाता है)। आप इसे भरोसे के लिए भी कह सकते हैं कि एक छोटे से गंतव्य में पहले से ही सही सामग्री है और बस आकर्षक होने की जरूरत है, हालांकि विषय पर बने रहें।
स्टीफन गौरिचोन 21

8

यदि GUI ऐप्स ने फ़ाइल और निर्देशिका तुलना टूल पर सुझाव दिया है ? आप के लिए यह मत करो, diff -rq /path/to/one /path/to/otherचुपचाप स्क्रीन पर केवल मतभेदों को लॉग इन दोनों निर्देशिकाओं के माध्यम से पुनरावृत्ति करने का प्रयास करें।


3

आप जो स्थिति कह रहे हैं वह बहुत जटिल है। हालाँकि आप उन सभी फाइलों के एमडी 5 की गणना करने के लिए एक स्क्रिप्ट लिख सकते हैं, जिन्हें आप कॉपी करना चाहते हैं और बाद में उनकी तुलना की गई कॉपी से करते हैं:

यदि आप कुछ सरल और तेज़ चाहते हैं (यह बहुत जटिल परिदृश्य में काम नहीं करेगा) तो आप Meld का उपयोग कर सकते हैं

sudo apt-get install meld

0

"अगर सब कुछ सही तरीके से कॉपी किया गया है" पर, मैं एक संशोधित सीपी (या एमवी) का उपयोग करता हूं जिसमें चेकसममिंग (वैकल्पिक रूप से एक्सट्र में संग्रहीत होता है, इसलिए इसे केवल स्रोत के लिए एक बार गणना करना पड़ता है) http://sourceforge.net/project / crcsum /


1
यद्यपि आपका उत्तर 100% सही है, लेकिन शुरुआत उपयोगकर्ता के लिए लागू करना भी लगभग असंभव है। इसलिए, कृपया अपना उत्तर संपादित करें, और अपने उत्तर में डाउनलोड, संकलन, इंस्टॉल और अनइंस्टॉल करने के चरणों को शामिल करें crccp! ;-) आप हमेशा अपने उत्तर के लिए अपनी सामग्री के स्रोत के रूप में नीचे दिए गए लिंक को छोड़ सकते हैं ...
Fabby
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.