मैंने देखा कि मूल पोस्ट पुरानी है, हालाँकि, मुझे लगता है कि यह जानकारी अभी भी उन लोगों के लिए मूल्यवान हो सकती है जो यह सत्यापित करने के लिए कि फाइलों को सही तरीके से कॉपी किया गया है। रुपीक्स डेटा कॉपी करने का सबसे अच्छा तरीका हो सकता है और इस धागे में दिए गए उत्तर अच्छे हैं, हालांकि उन लोगों के लिए जो लिनक्स के साथ अनुभवी नहीं हैं, मैं अधिक विस्तृत विवरण देने की कोशिश करूंगा।
परिदृश्य: आपने बहुत सी उप-निर्देशिकाओं और फ़ाइलों के साथ एक डिस्क से दूसरे में डेटा कॉपी किया है। आप सत्यापित करना चाहते हैं कि सभी डेटा सही तरीके से कॉपी किए गए हैं।
पहले चेक करें कि md5deep कमांड जारी करके स्थापित किया गया है md5deep -v
।
यदि आपको 'कमांड नहीं मिला' जैसी कोई बात कहते हुए संदेश मिलता है, तो md5deep द्वारा स्थापित करें apt-get install md5deep
।
यह माना जाता है कि आप केवल नियमित फ़ाइलों से निपटना चाहते हैं। यदि आप अन्य प्रकार की फ़ाइलों से निपटना चाहते हैं, तो md5deep मैनुअल में -o फ्लैग को देखें। ( man md5deep
)
अब आप जाने के लिए अच्छे हैं, और हम मान लेते हैं कि आपने जिन फ़ाइलों का उपयोग कर रहे हैं, उनके /mnt/orginal
लिए फ़ाइलों को /mnt/backup
इनसे कॉपी किया है ।
स्रोत निर्देशिका में पहला परिवर्तन, यह आपके द्वारा कॉपी या बैकअप की गई फ़ाइलों का मूल स्रोत है:
cd /mnt/orginal
फिर प्रत्येक फ़ाइल का एक चेकसम बनाएँ:
md5deep -rel -o f . >> /tmp/checksums.md5
इस कमांड ने समझाया:
-r
पुनरावर्ती मोड सक्षम करता है
-e
प्रगति संकेतक प्रदर्शित करता है
-l
सापेक्ष फ़ाइल पथ सक्षम करता है।
-o f
केवल नियमित फाइलों पर काम करें (उपकरणों को ब्लॉक न करें, नामांकित पाइप आदि)
.
वर्तमान निर्देशिका में शुरू करने के लिए md5deep बताता है।
>> /tmp/checksums.md5
md5deep को सभी आउटपुट को रीडायरेक्ट करने के लिए कहता है /tmp/checksums.md5
।
ध्यान दें, यदि आप पिछले संस्करणों में सामग्री को अधिलेखित करना चाहते हैं, तो /tmp/checksums.md5
उपयोग करें >
और नहीं>>
ध्यान दें कि यह कमांड काफी समय ले सकता है, जो कि io- गति और डेटा के आकार पर निर्भर करता है। आप md5deep के प्रदर्शन को बढ़ाने के लिए अच्छा और / या आयनी के साथ प्रयोग कर सकते हैं, लेकिन यह इस उत्तर के दायरे से बाहर है।
जब चेक sums का निर्माण समाप्त हो गया है, तो आपके पास अब एक फ़ाइल है जिसमें प्रविष्टियां समान हैं:
69c0a826b29c8f40b7ca5e56e53d7f83 ./oldconfig-11-09-2013/etc2/apm/event.d/20hdparm 651f7c779a14332f9fa7bb368039210/etconfig-11.in/etc.in/etc3/etc.in/etc.in/ /etc2/apm/scripts.d/alsa e9b9131660a8013983bc5e19d7d669eb ./oldconfig-11-09-2013/etc2/ld.so.ache
पहला कॉलम md5 चेक योग है, और दूसरा कॉलम चेकसम से संबंधित फाइल के सापेक्ष पथ है।
यदि आप देखना चाहते हैं कि चेकसम फाइल में कितनी फाइलें मौजूद हैं, तो कमांड जारी करें:
wc /tmp/checksums.md5 -l
अब, आप जांचना चाहते हैं कि कॉपी किया गया डेटा सही है:
cd /mnt/backup
md5deep -o f -reX /tmp/checksums.md5 . >> /tmp/compare.result
जब हमने चेकसम बनाया है तब से केवल एक ही अंतर है -X जो किसी फ़ाइल के वर्तमान हैश को प्रदर्शित करता है यदि चेकसमों। Dd5 फ़ाइल में प्रविष्टि मेल नहीं खाती है। इसलिए परीक्षण के अंत तक, यदि /tmp/compare.result
रिक्त है, तो आप भरोसा कर सकते हैं कि चेकसम के मिलान के बाद से सभी फाइलें सही तरीके से कॉपी की गई हैं।
ध्यान दें कि /tmp/checksums.md5
फ़ाइल में सूचीबद्ध फ़ाइलों को केवल एक सही चेकसम के लिए जांचा जाएगा, अगर /mnt/backup
निर्देशिका में कोई अतिरिक्त फ़ाइलें हैं , तो md5deep आपको इन के बारे में सूचित नहीं करेगा।
टिप्पणियाँ:
जरूरी नहीं कि आप आउटपुट फाइल स्टोर करने के लिए रिडायरेक्शन का इस्तेमाल करें। अधिक जानकारी के लिए md5deep मैनुअल देखें।
आपको उन md5deep कमांड को रूट के रूप में चलाना पड़ सकता है, जो आपके द्वारा हैंडल की जाने वाली फ़ाइलों की अनुमतियों पर निर्भर करती हैं।
sudo apt-get install md5deep
md5deep -rel /path/to/your/directory/ > directory_hash.md5
md5deep -X directory_hash.md5 -r /path/to/your/second/direcotory
Thx a lot।