Soru --Checksum ve --ignore-times seçenekleri arasındaki Rsync farkı


Herkes arasındaki farkları açıklayabilir mi --checksum ve --ignore-times rsync seçenekleri?

Benim anlayışım şu şekildedir:

--checksum
Dosya boyutu ve saati eşleşirse, dosyaların gerçekten aynı olup olmadığını görmek için her iki uçta bir sağlama toplamı yapar.

--ignore-times
Dosya zamanının her iki uçta aynı olup olmadığına bakılmaksızın her dosyayı 'Aktar'. Bir delta aktarım algoritmasını kullanmaya devam edeceğinden, bir dosya aslında aynıysa, hiçbir şey aktarılmaz.

Teknik fark bu, ama anlayabildiğim kadarıyla, bunlar aynı şeydir.

Yani, merak ettiğim:

  • İki seçenek arasındaki pratik fark nedir?
  • Hangi durumlarda diğerinden ziyade kullanırsın?
  • Aralarında herhangi bir performans farkı var mı?

75
2017-12-09 20:15


Menşei




Cevaplar:


Normalde, rsync dosyalar, kaynak ve hedef taraflarında aynı boyutlara ve zamanlara sahip olduğunda dosyaları atlar. Bu, genellikle önlenmesi iyi bir fikir olan bir sezgidir. rsync Kaynak ve hedef taraflarında büyük olasılıkla aynı olan dosyaların içeriğini incelemek zorunda kalmadan.

--ignore-times anlatır rsync Dosya-zaman-ve-boyutları sezgisel kapatmak ve böylece koşulsuz TÜM dosyaları kaynaktan hedefe aktarır. rsync Daha sonra, kaynaktaki her dosyayı okumaya devam edecektir, çünkü ya delta aktarım algoritmasını kullanması gerekecek, ya da her dosyayı kendi başına göndererek --whole-file seçenek belirtildi.

--checksum Ayrıca, dosya-kez-ve-boyutları sezgisel değiştirir, ancak burada zamanları yok sayar ve sadece boyutları inceler. Boyutu farklı olan kaynak ve hedef taraflarındaki dosyalar aktarılır, çünkü bunlar açıkça farklıdır. Aynı boyutta dosyalar checksummed (MD5 ile) rsync sürüm 3.0.0+ veya önceki sürümlerde MD4 ile) ve farklı miktarlara sahip olduğu bulunanlar da aktarılır.

Kaynak ve hedef tarafların çoğunlukla aynı olduğu durumlarda, --checksum Çoğu dosyanın her iki tarafta da kontrol edilmesine neden olur. Bu uzun zaman alabilir, ancak en büyük veri, özellikle de delta transfer algoritması kullanılıyorsa, tel üzerinden aktarılacaktır. Elbette, çok yavaş ağlarınız varsa ve / veya çok hızlı bir CPU'nuz varsa, bu sadece bir kazançtır.

--ignore-timesÖte yandan, ağ üzerinden daha fazla veri gönderecek ve tüm kaynak dosyaların okunmasına neden olacak, ancak en azından kaynak ve hedef CPU'lar üzerinde birçok kriptografik olarak güçlü hashları hesaplamak için ek yük getirmeyecektir. Bu seçeneğin daha iyi performans göstermesini beklerdim --checksum Ağlarınız hızlı olduğunda ve / veya CPU'nuz nispeten yavaş.

Sanırım sadece kullanacağım --checksum veya --ignore-times bazı dosyaların içeriğinin bozuk olduğundan, ancak değişiklik sürelerinin değiştirilmediğinden şüphelenildiği bir hedefe dosya aktarıyor olsaydım. Muhtemelen başka kullanım durumları olsa da, herhangi bir seçeneği kullanmanın başka iyi bir sebebini düşünemiyorum.


83
2017-12-09 23:41



buldum --checksum ile birlikte yararlı --itemize-changes yedekleri doğrulamak için. Her gün ve tekrarlanan yedekleme komut dosyaları, güncel günlük / haftalık güncellemeler tamamlandıktan sonra bu şekilde karşılaştırılabilir. Acil olarak işaretlenmiş bir e-posta düştüm --itemize-changes beklenmedik bir şey çıkarır, bu yüzden bakmam gereken potansiyel bir problem olduğunu biliyorum. - David Spillett
--checksum Git'te çalışırken ve değiştirilen dosyalarla dalları arasında geçiş yaparken yararlıdır; bu, belirli bir daldan göndermeyi istemediğiniz dosyalarda güncelleme sürelerini değiştirmeye devam eder. - FriendlyDev
--ignore-times ve özellikle --checksum "dosyalarınızdan" biri Truecrypt dosya kabıysa, varsayılan olarak dosyanın zaman damgasının güncellenmediğinden gereklidir. Görmek productforums.google.com/forum/#!topic/drive/gnmDp3UXEgs ve ask-leo.com/why_wont_my_truecrypt_volume_backup.html - Marcus Junius Brutus
Not: Ben hızlı bir deney yaptım ve ctime, sadece mtime karşılaştırılmamıştır. Mac’te en azından. Bu bilmek faydalı olabilir. Bu yüzden, Windows dosya sistemlerinde, atime, mtime ve ctime için aynı zamanı (ctime) bildiren çok sayıda sorunum var. - Edward Falk
does --checksum checksum sadece hedef makinede veya hedef dizindeki tüm dosyalardaki kaynak dosya isimleri mi? - Greg


Sağlama zaman damgası olmayan dosyaları eşitlemek için başka bir sistem kullanıyorsanız, sağlama toplamı da yararlıdır. Checksum, yalnızca farklı olan dosyaları aktarır VE eşleşecekleri şekilde tüm alıcılardaki zaman damgalarını günceller.


13
2017-07-24 08:37





Bir ayrıntı: sağlama toplamı seçeneği bir dosyanın tamamını, diğer ucundaki tüm dosyayı denetler. Dosyalarınız biraz büyükse, bu tarz bir paralellik öldürür.

Ayrıca, büyük dosyalarınız varsa, büyük olasılıkla bir zaman aşımına girebilirsiniz. --checksum, seninle değil gibi -I.


4
2018-06-03 14:43





itibaren info rsync ile ilgili olarak --checksum option - "Bir dosyanın aktarımı sırasında ortaya çıkan otomatik sağlama toplamı doğrulamasına ek olarak, bağlantının her iki tarafındaki tüm dosyaların toplam dosya denetlemesi bu yana, bu seçenek oldukça yavaş olabilir."


2
2017-12-09 20:34



Bu cümle benim erkek sayfalarında görünmüyor ... bu nedenle, sağlama toplamı seçeneğinin dosyaların aynı olup olmadığını tanımlamak için sağlama toplamlarını kullanacağı ve eğer aktarılmayacaksa, böylece sağlama toplamları olarak yeniden üretileceği anlamına gelir. transferin bir parçası mı? --Signore-times seçeneği sadece kontrolü atlar ve değiştirdiklerini varsayar? Bu nedenle performans-bilge - zaman-kez-aynı şeyi elde etmek için daha iyi bir yoldur? Hala neden 2 farklı seçeneğin olduğunu görmek için mücadele ediyorum (check-inumun daha şeffaf olması dışında) - Andy Madge
En son dokümantasyon düzenlemesine bakmalısınız: gitweb.samba.org/... - Aleksandr Levchuk


--ignore-times Bu seçenek muhtemelen kodlanmış tüm dosyalarda delta ile sonuçlanacak ve delta transfer algoritması (delta kodlama) en azından sağlama toplamı kadar yavaş olacaktır.

Rsync mi bilmiyorum --ignore-times delta aktarımının hiçbir şekilde aktarılmamasıyla sonuçlanacağı durumlarda, "otomatik olarak aktarma sonrası doğrulamayı" önlemek için yeterince akıllıdır.

İçin --ignore-times:

  • Eğer rsync akıllı değilse (veya delta şifrelemesine güvenmiyorsa), kontrol (kontrol toplamı ve kodlama) iki kez yapılır.
  • Delta kodlamasının 128 bitlik MD4 sağlama toplamından çok daha yavaş olması da söz konusu olabilir.

Her ikisi de --checksum ve --ignore-times "oldukça yavaş" olacak ama --ignore-times muhtemelen daha yavaştır (yukarıdaki 2 olasılıktan dolayı).

İyi soru - uygulamada herhangi bir performans farkı bulursanız lütfen gönderin.


2
2017-12-09 22:22



Ne demek istediğini anladım. Bazı testler yapacağım ve geri göndereceğim. - Andy Madge