Yüklemeniz on iki gigabaytlık bir arşivin dört gigabaytında duruyor ve indirme yöneticilerinden öğrenilen alışkanlık devam et düğmesine basmanızı söylüyor. rsync TCP akışını sürdürmez, çünkü o akış tünelin son yeniden iletimiyle birlikte gitti. Yapabileceği şey, zaten aldığı baytları tutmak ve bunları bir sonraki deneme için temel olarak kullanmaktır; bu, başka bir kural kümesine sahip başka bir mekanizmadır. Seçtiğiniz bayraklar bu yeniden kullanımın gerçekleşip gerçekleşmeyeceğini belirler.

Yeni deneme durumu yeniden kurar, akışı sürdürmez

SSH oturumu düştüğünde, uzak tarafta yalnızca diske yazılabilen kalır ve başka hiçbir şey kalmaz. Yeniden bağlanılacak bir oturum belirteci ve yeniden oynatılacak bir sıra numarası yoktur. Sonraki çalıştırma yeni bir bağlantı açar, kaynağı yeniden okur ve alıcıya elinde ne olduğunu sorar.

O son soru, kısmi bir dosyayı saklamanın neden değerli olduğunu açıklar. Alıcının kopyası rsync'e karşılaştıracak bir şey verir ve algoritma yalnızca tanımlayabildiği farkları gönderir. Bu hâlâ yeni bir üst veri transferi ve kaynak üzerinden yeni bir geçiştir, bu yüzden kazanılan zaman dosyanın ne kadarının eşleştiğine bağlıdır, önceki bağlantının ne kadar ilerlediğine değil. Alıcı hiçbir şey tutmadıysa, sonraki deneme tam bir kopyadır, ilki kaç gigabayt taşımış olursa olsun.

Yeniden kullanılabilir parçanın nerede yaşadığına karar verin

Varsayılan davranış kısmi dosyayı hedef yoluna yazar, bu da yarım yazılmış bir arşivi son ad altında görünür kılar. --partial-dir onu seçtiğiniz bir dizine taşır ve kılavuz o dizini daha sonraki bir transferin veri olarak kullanması için saklanan olarak tanımlar. Göreli bir ad hedef dizin altında çözülür; iki ucun farklı düzenleri olabileceğinde istediğiniz tam olarak budur.

rsync -e ssh --partial-dir=.rsync-partial --info=progress2 -- \
  large-archive.bin [email protected]:/srv/incoming/

Hedefte de sıra önemlidir: kısmi dizinin parça için yeterli alana ihtiyacı vardır ve birimin tamamlanmış dosya için de yeterli alana ihtiyacı vardır. Hedef birimi transferin ortasında doldurmak, ağ sorunu gibi görünen ama olmayan bir hataya yol açar ve saklanan parçayı kesik bırakabilir. Çalıştırma başlamadan önce alıcı ana bilgisayardaki boş alanı denetleyin, başarısız olduktan sonra değil. Aynı SSH yolu üzerinden df -h ile birkaç saniye, planın mümkün olan en ucuz testidir.

İzinler daha küçük ama gerçek bir kaygıdır. İlgisiz hesapların yazabildiği bir kısmi dizin, bir sonraki çalıştırmanızın zaten alınmış sayacağı içeriği başkasının değiştirmesine izin verir. Onu transfer hesabının sahipliğinde tutun ve diğer hizmetlerin yayınladığı bir yere koymayın.

Aynı kopyayı çalıştırın, daha akıllısını değil

Yeniden kullanım yalnızca kaynak ve hedef hâlâ aynı nesneyi tanımlıyorsa geçerlidir. Aynı yol, aynı ad, aynı dosya. Kaynağı yeniden adlandırmak veya başka bir hedef dizine işaret etmek, işe yaramayan bir şeye karşı yeni bir karşılaştırma başlatır.

Delta davranışını beklerken --whole-file eklemeyin. Bu seçenek rsync'e dosyanın tamamını kayan sağlama toplamı karşılaştırması olmadan kopyalamasını söyler; bu hızlı bir yerel bağlantıda makul ve başarısız bir uzun mesafe yüklemesinden sonra tam olarak yanlış bir seçimdir. --inplace da hikâyeyi değiştirir: doğrudan hedef dosyaya yazar, bu yüzden bir kesinti eski ve yeni içeriği karıştıran, geri dönülecek ayrı bir parçası olmayan bir dosya bırakır.

İlerleme satırı transferin toplam ilerlemesini bildirir. Bu bir tamamlanma sinyali değildir. Bağlantı hâlâ açıkken yüzde yüze ulaşan bir sayı, verinin itildiği anlamına gelir, alıcının bir şeyi yeniden adlandırdığı, eşitlediği veya kabul ettiği değil.

Nesneyi ancak eşleştikten sonra kabul edin

Önce çıkış durumunu doğrulayın, sonra hata olmamasına güvenmek yerine sonucu karşılaştırın. Boyut denetimi kesilmiş transferlerin çoğunu yakalar; sağlama toplamı karşılaştırması geri kalanını yakalar ve ikisi de yüklemeyi yeniden çalıştırmaya kıyasla ucuzdur.

Arşiv bir alt akış süreci tarafından yayımlanıyorsa, o süreç kabul edilen dosyayı beklesin. Son ad altında izlenen bir dizine düşen saklanmış parça bir sonraki taramada alınır ve tüketicinin hatası hiç bitmeyen bir transferle değil bozuk girdiyle ilgili olur.

Alıcı onaylayana kadar kaynağa dokunmayın. Arşivi denemeler arasında yeniden üretmek karşılaştırma temelini değiştirir ve sonraki çalıştırma ya neredeyse her şeyi aktarır ya da ne eski ne de yeni kaynakla eşleşen bir dosya üretir.

Sınır bayrak değil, bağlantı olduğunda

Başlık ve protokol ek yükü transferin bir maliyetidir ve büyük bir dosyanın ne kadar süreceğine nadiren bu karar verir. Yeniden başlatma davranışı daha önemlidir: elle adım olmadan bir kopmayı atlatan yöntem, yeniden başlamak zorunda olan daha hızlı bir yöntemden daha erken kullanılabilir bir dosya verir. Her iki uçtaki depolama ve kimlik doğrulama yolu aynı karşılaştırmaya girer.

İzin verilen alternatif yolları aynı dosya ve aynı hedefle karşılaştırın ve her birinin bir kesintiden sonra nereden devam ettiğini not edin. O tek sütun, VPN üzerinden on iki gigabaytlık bir yükleme hakkında kısa bir testte ölçülen herhangi bir tepe hızdan daha fazlasını söyler.

İlgili makaleler