سؤال تحقق من صحة الملفات المنسوخة


بعد نسخ القول 50+ GB (30،000 ملف بما في ذلك تنسيقات مختلفة) من الملفات من القرص الصلب الداخلي إلى محرك أقراص خارجي هل هناك أي طريقة لمعرفة ما إذا كان قد تم نسخ كل شيء بشكل صحيح؟ أيضا إذا توقفت في ما بين بإلغاء العملية والقول في وقت لاحق دمج عند الاستمرار في العملية سوف تأخذ الصدمة ضربة؟

يمكنني استخدام تطبيقات مثل back-in-time ولكن أنا جدا في نسخ الملفات وللمرة القادمة أنوي استخدامها copy العملية ويقول merge بدلا من replace. هل من المستحسن عند نسخ عدد كبير من الملفات؟


13
2018-04-28 09:33


الأصل


قد تجد أجب هنا. - Takkat


الأجوبة:


أنا استخدم hashdeep للتحقق من النسخ الاحتياطي / الاستعادة وأحيانًا للتحقق من وجود تلف في نظام الملفات في RAID.

تعتمد السرعة على وظائف هاش التي تستخدمها (بعضها أكثر وحدة المعالجة المركزية من غيرها) وكذلك سرعة قراءة الأقراص. على نظام بلدي hashdeep يمكن معالجة أو التحقق من حوالي 1 تيرابايت / ساعة مع سرعة القراءة md5 و 300 ميغا بايت / ثانية.


مثال على حساب الاختباريات وتخزينها في ملف:

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 - مطول (للحصول على قائمة عدم التطابق ، متعددة vق يعني أكثر مطولاً)
  • k - ملف التجزئات المعروفة

لاحظ أنه اعتبارًا من مارس 2016 hashdeep يبدو أنه مهجور.


14
2018-04-28 19:09





يبدو مثل المهمة المثالية ل رسينك. 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 الخيار لأداء المزامنة الفعلية.

بعض الأسئلة ذات الصلة:


13
2018-04-28 10:01



rsync هو بالتأكيد أداة لهذا العمل ، لكنه لا يقارن وينسخ الاختلافات ، في حد ذاتها. يقارن الملفات باستخدام الأحجام والتجزئة. - Justin Force
JustinForce حجم استخدام؟ من المؤكد أن حجمًا مختلفًا يتأكد من أن الملف ليس متطابقًا تمامًا ، ولكن rsync متعدد الاستخدامات للغاية ، ويمكنه أن يثق بشكل اختياري بالبيانات الوصفية (مثل الوقت) لتجنب إعادة قراءة جميع الملفات. عند النسخ عبر الشبكة ، يقوم بحساب تجزئة متكررة للكشف عن الأجزاء المشتركة لتجنب نقلها ، ولكن على محرك الأقراص المحلي عن طريق التجزئة الافتراضية لا تلعب هذا الدور (إذا استخدمت على الإطلاق). يمكنك حتى أن تطلب من الشركة الثقة في أن الوجهة القصيرة تحتوي بالفعل على محتوى صحيح وتحتاج فقط إلى إلحاق ، على الرغم من أننا نبقى على الموضوع. - Stéphane Gourichon


إذا اقترحت تطبيقات واجهة المستخدم الرسومية في أداة مقارنة الملفات والدليل؟ لا تفعل ذلك من أجلك ، حاول diff -rq /path/to/one /path/to/other لتكرار من خلال كل الدلائل بهدوء ، تسجيل الفروق فقط على الشاشة.


8
2018-04-28 12:07





الوضع الذي تقوله معقد للغاية. على الرغم من أنه يمكنك كتابة برنامج نصي لحساب MD5 لجميع الملفات التي تريد نسخها ، ثم مقارنتها مع تلك التي تم نسخها:

إذا كنت تريد شيئًا بسيطًا وسريعًا (لن يعمل في سيناريوهات معقدة جدًا) يمكنك استخدامه أخلط

sudo apt-get install meld

3
2018-04-28 11:36





على "إذا تم نسخ كل شيء بشكل صحيح" ، يمكنني استخدام cp معدلة (أو mv) التي تتضمن checksumming (مخزنة اختياريًا في xattr ، ومن ثم يجب حسابها مرة واحدة فقط للمصدر) http://sourceforge.net/projects/crcsum/


0
2018-02-05 13:26



على الرغم من أن إجابتك صحيحة بنسبة 100٪ ، إلا أنه من المستحيل تقريبًا أن ينفذ المستخدم الأول. لذلك من فضلك تصحيح إجابتك ، وتضمين الخطوات المتعلقة بكيفية التنزيل ، والتجميع ، والتركيب ، وإلغاء التثبيت crccp في إجابتك! ؛-) يمكنك دائما ترك الرابط في أسفل إجابتك كمصدر للمواد الخاصة بك ... - Fabby