Orijinal gönderinin oldukça eski olduğunu fark ettim, ancak bu bilgilerin yine de dosyaların doğru kopyalandığını doğrulamak için bir çözüm arayanlar için değerli olabileceğini düşünüyorum. Rsync veri kopyalamak için en iyi yöntem olabilir ve bu konuda verilen cevaplar iyi, ancak Linux ile deneyimli olmayanlar için daha ayrıntılı bir açıklama yapmaya çalışacağım.
Senaryo: Verileri bir diskten diğerine, birçok alt dizin ve dosya ile kopyaladınız. Tüm verilerin doğru kopyalandığını doğrulamak istiyorsunuz.
Önce komutu vererek md5deep'in kurulu olup olmadığını kontrol edin md5deep -v
.
'Komut bulunamadı' gibi bir mesaj alırsanız, md5deep by yükleyin apt-get install md5deep
.
Yalnızca normal dosyalarla uğraşmak istediğiniz varsayılmıştır. Diğer dosya türleriyle ilgilenmek istiyorsanız, md5deep kılavuzundaki -o bayrağına bakın. ( man md5deep
)
Şimdi gitmek için iyi, ve biz size dosyaları kopyaladığınız varsayalım /mnt/orginal
için /mnt/backup
, kullandığınız herhangi dizinler için bu yerine.
İlk olarak kaynak dizini değiştirin, kopyaladığınız veya yedeklediğiniz dosyaların orijinal kaynağı budur:
cd /mnt/orginal
Ardından her dosyanın bir sağlama toplamını yapın:
md5deep -rel -o f . >> /tmp/checksums.md5
Bu komut açıkladı:
-r
özyinelemeli modu etkinleştirir
-e
ilerleme göstergesi görüntüler
-l
göreli dosya yollarını etkinleştirir.
-o f
yalnızca normal dosyalar üzerinde çalışır (cihazları engelle, adlandırılmış yöneltmeler vb. değil)
.
md5deep'e geçerli dizinde başlamasını söyler.
>> /tmp/checksums.md5
md5deep'e tüm çıkışı yönlendirmesini söyler /tmp/checksums.md5
.
Not, önceki sürümlerinde içeriğin üzerine istiyorsanız /tmp/checksums.md5
, kullanım >
ve>>
İo hızına ve verilerin boyutuna bağlı olarak bu komutun biraz zaman alabileceğini unutmayın. Md5deep'in performansını artırmak için güzel ve / veya iyonik deneyler yapabilirsiniz, ancak bu, bu cevabın kapsamı dışındadır.
Çek toplamlarının oluşturulması tamamlandığında, artık aşağıdakine benzer girişlere sahip bir dosyanız var:
69c0a826b29c8f40b7ca5e56e53d7f83 ./oldconfig-11-09-2013/etc2/apm/event.d/20hdparm 651f3c7f79a14332f9fa7bb368039210 ./oldconfig-11-09-2013/etc2/apm1/9c9/9c9/9c9/9c9/9c9/9c9 /etc2/apm/scripts.d/alsa e9b9131660a8013983bc5e19d7d669eb ./oldconfig-11-09-2013/etc2/ld.so.cache
İlk sütun md5 denetim toplamı ve ikinci sütun sağlama toplamının ait olduğu dosyaya göreli yoldur.
Sağlama toplamı dosyasında kaç dosya olduğunu görmek istiyorsanız, şu komutu verin:
wc /tmp/checksums.md5 -l
Şimdi, kopyalanan verilerin doğru olup olmadığını kontrol etmek istiyorsunuz:
cd /mnt/backup
md5deep -o f -reX /tmp/checksums.md5 . >> /tmp/compare.result
Sağlama toplamlarını oluşturduğumuzdaki tek fark, checksums.md5 dosyasındaki giriş eşleşmiyorsa bir dosyanın geçerli karmasını görüntüleyen -X'dir . Testin sonunda /tmp/compare.result
, boşsa, sağlama toplamı eşleştiğinden tüm dosyaların doğru kopyalandığına güvenebilirsiniz.
Yalnızca dosyada listelenen dosyaların /tmp/checksums.md5
doğru bir sağlama toplamı için denetleneceğini unutmayın, /mnt/backup
dizinde başka dosyalar varsa , md5deep bunlar hakkında sizi bilgilendirmez.
Notlar:
Çıktı dosyalarını saklamak için yeniden yönlendirme kullanmak zorunda değilsiniz. Daha fazla bilgi için md5deep kılavuzuna bakın.
Kullandığınız dosyaların izinlerine bağlı olarak, md5deep komutlarını root olarak çalıştırmanız gerekebilir.
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
çok seviyorum: Çok teşekkürler.