Rsync'i ctrl-c ile kesintiye uğratmak, `--partial` veya` --append` kullanmalı mıyım?


14

(Dosya yarıya aktarıldıktan sonra diyelim) rsyncile kesinti yapmak ctrl-cve aktarılmış olan verileri tekrar göndermek zorunda kalmadan devam etmek istiyorum.

Bulduğum stackexchange / google bilgileri çelişkili görünüyor. Bazılarını kullanım diyenler --partial, bazılarını kullanım diyenler buldum --append. Bana göre ikisi de işe yarıyormuş gibi geliyor.

Eğer rsync'i ctrl-c ile kesmek istiyorsam, --partialveya kullanmalı --appendmıyım?

Her ikisi de işe yarayacaksa, birini diğerine karşı ne zaman kullanmak daha iyidir?

Yanıtlar:


8

Yeniden başlatmak --partialiçin yeterlidir. Kullanım --inplacegerçekten istemiyorsanız rsynceğer, örneğin kopyalanan mevcut verilerin ve yeni birleştirir geçici bir dosya oluşturmak için rsynchedef klasörde geçici bir dosya oluşturarak izinler sorunları olacak.

Yalnızca --appendkısmen kopyalanan verilerin hala kaynakla aynı olduğunu garanti edebiliyorsanız kullanın . (Genellikle bu yanlış bir optimizasyondur.)


1
Bu yüzden yukarıdaki seçenekleri kullandığımda (aslında --append-verify kullanarak) ve rsync hala baştan başladığını iddia ediyor ve dosya boyutunda herhangi bir değişiklik görmüyorum ve kalan dosya süresi orijinal olarak ne olduğunu kopyaya başladığımda rsync yalan mı söylüyor yoksa endişelenmeli miyim?
Michael

@Michael yerel bir kaynağınız ve hedefiniz varsa tüm kurallar değişir.
roaima

LAN üzerinden yapıyordum, ancak biraz daha deney yaptıktan sonra, sorunun --append-verifyaslında her iki taraftaki dosyanın parçalarını okumak zorunda kaldığı için, darboğaz nedeniyle daha hızlı değil. LAN'ın kendisi değil, okuma tarafında eski bir sürücü olmak.
Michael

@Michael well evet, zaten iletilmiş verilerin doğrulanmasını istediyseniz, o zaman verileri okumak zorunda!
roaima

1
@alper Bu seçeneği daha önce hiç görmedim. Kullanmak en iyisi gibi görünüyor --partial-dir, ama henüz denemedim.
roaima

3
  • --append dosyanın zaten hedefte var olabileceğini varsayar, sadece rsync'in zaten orada bulunan içeriği kontrol etmemesini sağlar (ancak aşağıya bakın).
  • --partial rsync'e kısmen aktarılan dosyaları silmemesini söyler.

Ayrıca ihtiyacınız --inplaceolacak --partial(ima edilir --append).

--inplaceAslında ortaya çıkıyor --partial, bu yüzden --appendyeterli (ima --inplaceeden anlamına geliyor --partial). Ancak --partialtek başına yeterli değil, ihtiyacınız var --inplace, aksi takdirde rsync sonuncuyu güncellemek yerine geçici dosyalar oluşturur.


Eğer rsync'i ctrl-c ile kesmek istersem --append? Çünkü --partialkendi başına devam etmeyecekti.
Trevor Boyd Smith

Sadece kullanırdım --inplace. rsync "her zaman devam eder" (gereken minimum veriyi aktarmaya çalışır). Ne --appendyapar, rsync'e zaten hedefte olan verileri sağlama toplamı yapmamasını söyler, bu nedenle hedefteki kısmi dosya bozulursa, bozuk kalır --append. --appendörneğin, kısmi dosya çok büyükse ve bekleyemezseniz (ve bozuk olup olmadığından emin veya umursamıyorsanız) veya başka bir özel durum varsa ilginç olabilir.
Spuk

1
Fedora 20'de man rsyncseçenek --appenddiyor... Implies --inplace
Trevor Boyd Smith

1
--inplaceçalışacak. --appendçünkü (cevapta belirttiğim gibi) ima --inplaceeder --partial(orijinal soru olan Ctrl-c tarafından kesildiğinde kısmen aktarılan dosyaları tutacaktır). Yani --append"aracı olarak yapmak --inplace, ancak hedef zaten ne Sağlama yok Bu önemli bir farktır sen de buna kullanımını önemsemiyorsan...
Spuk

1
Öyleyse --partial OLMADAN ne anlamı var--inplace
Evan Carroll
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.