Tek bir dosyanın transferini rsync ile sürdür


22

Ubuntu'da büyük bir dosyayı sabit diskimden çıkarılabilir bir sürücüye rsync ile kopyalamak istiyorum. Herhangi bir sebepten dolayı veya başka bir şey olursa, işlem tek bir işlemle tamamlanamaz. Bu yüzden, son kez bırakıldığı yerden dosya kopyalamaya devam etmek için rsync'in nasıl kullanılacağını çözmeye çalışıyorum.

--Partial veya --inplace seçeneğini kullanmaya çalıştım, ancak --progress ile birlikte --partial veya --inplace ile rsync'in aslında en son kalanlar yerine baştan başladığını gördüm. Normalde rsync'i durdurmak ve alınan dosyanın boyutunu kontrol etmek de bulduğumu doğrular.

Fakat --append ile, rsync geçen sefer kalanlardan başlıyor.

- Kısmi, - inplace veya - append manpageinde gördüğümde kafam karıştı, son kez kalanlardan kopyalamaya devam etmek gibi görünüyor. Birisi farkı açıklayabilir mi? Neden --partial veya --inplace bir kopyayı sürdürmek için çalışmıyor? Bir kopyayı devam ettirmek için rsync'in --append seçeneğiyle çalışması gerektiği doğru mu?

Ayrıca, kısmi bir dosya rsync tarafından değil mv veya cp tarafından bırakılmışsa, rsync - doğru şekilde gider mi?

Teşekkürler ve saygılar!


Rsync'in nasıl çalıştığını anlamam sınırlı, ama son soruyu cevaplayacağım. Bir cp tamamlanmamışsa, rsync kopyaya devam etmelidir. Ben inanıyorum dosyanın aynı başlangıç bölümünü bulur bir şekilde rsync hashs dosyaları ve dosyanın kalan kısmını kopyalayın.
Scott McClenning

Yanıtlar:


25

Rsync için bazı sayfalara bakmak:

--append
Bu, rsync'in dosyanın ucuna veri ekleyerek bir dosyayı güncellemesine neden olur; bu, alıcı tarafta zaten var olan verilerin gönderen taraftaki dosyanın başlangıcı ile aynı olduğunu varsayar.

--inplace
Bu seçenek, verilerin güncellenmesi gerektiğinde rsync'in bir dosyayı aktarma şeklini değiştirir: varsayılan dosyanın yeni bir kopyasını oluşturmanın ve tamamlandığında yerine taşımasının varsayılan yöntemi yerine, rsync bunun yerine güncellenmiş verileri doğrudan yazar. hedef dosyası.

--partial
Varsayılan olarak, aktarım kesilirse rsync kısmen aktarılan herhangi bir dosyayı siler. Bazı durumlarda kısmen aktarılmış dosyaların saklanması daha çok istenir.

Dosya çok büyükse, kullanmak istersiniz gibi geliyor --partial --append. ( --appendima eder --inplace) Bu büyük dosya değişirse, o zaman --appendve rsync'i bırakarak kaynak dosyayla da aynı olduğundan emin olmak için dosyanın başlangıcını kontrol edin. --inplacebana tehlikeli geliyor, büyük bir dosyayı rsyncing ediyorsanız, rsync'in başlangıç ​​bölümünün yeni bir geçici dosyasını oluşturmasını, aktarmaya devam etmesini ve ardından yeni dosyayı yerine koymak için eski dosyayı kaldırmasını istemiyorsanız tehlikeli olur. Aynı dosyayı kullanırsanız aktarım daha hızlı olur, aktarma için gereken disk alanından daha az olmaz.

Ayrıca, tüm bir dosya aktarım noktası noktasından kopyanın rsync'den daha hızlı olduğunu gördüm. Bununla birlikte, bir dosyayı güncellemem gerekirse, rsync'in tüm dosyayı yeniden aktarmadan daha hızlı bir şekilde senkronize etmesini sağladım. (yukarıda söylediğim gibi) Rsync, bir cp'den devam edebilmelidir.

Umarım bu yardımcı olur.


1
Bu hata raporuna bir göz atmak isteyebilirsiniz: lists.samba.org/archive/rsync/2012-Haziran/027615.html
Stefan Schmidt

Varsayılan olarak daha hızlı cp kullanımı ve kırılmış bir cp işlemini "onarmak" için rsync kullanımı hakkında iyi bir nokta! Düzgün :)
Samuel Lampa,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.