Kaynak güncellenirken rsync kullanmak güvenli midir?


19

rsyncRsync çalışırken değiştirilebileceği varsayılarak, kaynak dosya sistemi monte edildiğinde ve yazılabilir olduğunda kullanmak güvenli midir? Yarış koşullarında en son değişiklikleri alamayacağımı varsayıyorum, ancak yolsuzluk riski var mı?


1
Değişiklik durumunda tutarlılık (veri dosyası ve bazı ilişkili meta veri dosyası, günlük ya da bu gibi bazı dosyalar arasında) ya da bozulma (tek bir dosya içinde ) ile ilgili endişeleriniz mi var ?
bir CVn

Güzel bir nokta, dosyalar arasında tutarlılığı düşünmemiştim. Bu konuda rsyncgerçekten bir şey yapamayacağını sanmıyorum, sadece bir anlık görüntü olabilir, ancak bir dosyadaki yolsuzluktan daha fazla endişeleniyorum.
brianmearns

Yanıtlar:


20

Kullanılması rsyncokuma-yazma dosya sistemlerini monte üzerinde oldukça güvenlidir. Ne zaman rsyncbaşlatılır bir dosya listesi kurar ve daha sonra bu dosyaları kopyalamak için başlar. Bu dosya listesi çalışma sırasında güncellenmiyor. Gerçek veriler daha sonra kopyalanır.

Bu , dosya listesi oluşturulduktan sonra bir dosya değiştiğinde yeni içeriği rsynckopyalayacağı anlamına gelir . Ancak, dosya listesini oluşturduktan sonra yeni bir dosya eklendiğinde , bu yeni dosya kopyalanmaz. Bir dosya, dosyalar listesini oluşturduktan sonra silinirse , rsync bu dosyayı kopyalayamayacağı konusunda uyarır. Anlık görüntü olmadığını unutmayın; bu , verilerin hangi zamanda kopyalandığını söylemek zor olduğu anlamına gelir .rsyncrsyncrsyncrsync

Öte yandan, dosya sistemi veya birim yöneticisi anlık görüntüleri (örn. ZFS veya LVM kullanımı) anında oluşturulur ve daha sonra başka bir ana bilgisayara kopyalanabilecek iyi tanımlanmış bir noktada dosya sisteminin tutarlı bir anlık görüntüsüdür. rsyncbu tür bir tutarlılık sunmaz.

DÜZENLEME: Diğerleri yorumlarda belirttiği gibi rsync, dosyanızı gerçekten bozma olasılığı vardır . Rsync bir dosyayı okumaya başladığında ve bir uygulama bu dosyayı aynı anda yazdığında, bozuk bir dosyayla sonuçlanabilir.


2
Silinen dosyalara bir not eklendi. Birim Yöneticisi anlık görüntü + rsync öneri için olabilir eğer muhtemelen bu başka bir upvote verecekti. Bu cevabın eksik olduğunu düşündüğüm tek şey, kaynaktaki dosyalar kopyalanmanın ortasında değiştiğinde rsync'in davranışıdır. Yine de bunun iyi işlediğinden şüpheliyim.
CVn

Kabul. Belirli dosyaların tutarlı olmasını istiyorsanız, işletim sistemi desteğine mi ihtiyacınız var?
Thorbjørn Ravn Andersen

1
Bu yanıt, kaynak taraftaki uygulamanın önce geçici bir dosyaya yazması, ardından yerine taşıması koşuluyla geçerlidir. Uygulama rsync bu dosyayı okurken varolan bir dosyayı yazmak için açarsa, rsync eski ve yeni sürümlerin bozuk bir karışımını kopyalayabilir.
Gilles 'SO- kötü olmayı bırak'

@Gilles Bunu işaret ettiğiniz için teşekkürler. Cevabımı güncelledim. Bu rsync ile ilgili mi yoksa başka bir uygulama aynı dosyaya yazarken okunan herhangi bir uygulamada mı oluyor?
Marco

1
@Marco Her ikisi de bazı kilitleme protokolleri kullanmadıkça (unix'te zorunlu kilitler değil, yalnızca tavsiye kilitleri, yani yalnızca herkes kullanıyorsa çalışan kilitler) herhangi bir uygulamada olur. Bu nedenle, eşzamanlı değişiklik bir endişe ise bir dosyayı değiştirmek için normal protokol, geçici bir dosya yazmak ve yerine taşımaktır.
Gilles 'SO- kötü olmayı bırak'
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.