2013-04-03 19 views
8

Bazen rsync rsync kullanılmıyor tüm dosyaları kopyalamıyor, aşağıda kullandığım kodum. Bir sağlama toplamı yapmanın bir yolu mu yoksa rsync'ten sonra tüm dosyaların kopyalanıp kopyalanmadığını ve tüm dosyalar kopyalanana kadar tekrar denemediklerini kontrol etmenin bir yolu mu?rsync rsync üzerinde bir sağlama toplamı nasıl yapılır

TEMP="/home/user/temp" 
OPTS="-rav -h" 

rsync $OPTS --stats [email protected]:/home/user/Local $TEMP 

cevap

3

Bu sorunun en iyi şekilde rsync'u düzgün bir şekilde yapılandırarak çözdüğünü düşünüyorum. man sayfasını okuyun sayfa :) seçenekleri var (bunun için --checksum gibi).

Kendi yanı üzerine bunu yapabilirsin:

  1. find rsync'd dizindeki tüm dosyaları. Eğer her iki taraftan (yerel/uzak) üzerindeki bunu yaparsak
  2. xargs md5sum
  3. tüm dosyalar için
  4. md5sum sağlama

bir sağlama almak için, karşı karşılaştırmak için bir sağlama gerekecek.

+0

Hızlı cevap için teşekkürler - Şu an rsync için man sayfasını okuyorum - adil olmak için burada bir sürü seçeneğimiz var - bakmam gereken sağlama toplamı mı? – Grimlockz

+0

Neden "rsync" bu dosyaları ilk etapta kopyalamıyor? Olması gerekiyor. Buradaki bilgileri saklı tutmuyorum, bayrakları hatırlamıyorum ya da – slezica

+0

Rsync dosyaları her zaman ilk denemede dosyaları kopyalamıyor (ağ sorunlarına varabilir, vb.) Ama komutu tekrar çalıştırmak istiyorum – Grimlockz

13

Uʍop ǝpısdn'un cevabında da belirtildiği gibi, rsync -c veya rsync --checksum ihtiyacınız olanı yapabilir.

-c, --checksum: sağlama değil, mod zamanlı & boyutu

Bu sınamaya bir 128 bitlik MD4 sağlama kullanarak her normal dosya gönderen zorlar dayalı arla. Bu, ilk dosya sistemi tarama sırasında mevcut tüm dosyaların listesini oluştururken yapar. Daha sonra alıcısı, her bir dosyanın sürümünü (varsa ve gönderici tarafı karşılığı ile aynı boyuta sahipse), hangi dosyalarının güncelleştirilmesi gerektiğine karar vermek için checksums: değiştirilmiş bir boyuta sahip veya değiştirilmiş dosyalar kontrol için sağlama toplamı seçilir. Bu tüm dosya bağlantının her iki tarafında checksumming tüm bu yana dosya aktarımının bir dosya aktarımı sırasında oluşan otomatik sağlama doğrulamaları ek olarak, bu seçenek oldukça yavaş olabilir. hep rsync

Not her transfer dosyası doğru onun tam dosya sağlama toplamı kontrol ederek alış tarafında üzerinde yeniden inşa edildiğini doğrular, ama bu otomatik sonrası transferi doğrulama bu seçeneğin önce-ile ilgisi yoktur Aktarım "Bu dosyanın güncellenmesi gerekiyor mu?" kontrol edin.

bu yavaş olma konusunda endişeler muhtemelen bugünlerde ilgili değildir ve siz veya değiştirme süreleri güvenmek istemiyorum olamaz zaman bu iyi bir seçenek gibi görünüyor.

+0

Git'te çalışırken ve değiştirilmemiş dosyalarla dalları arasında geçiş yaparken kullanabileceğiniz dosyalarda güncelleme sürelerini değiştirmeye devam ediyor belirli bir şubeden göndermek. – OCDev

İlgili konular