Birden çok rsync sürümü çakışması


1

RSYNC, yalnızca genişletilmiş öznitelikleri (Mac OS X) aşağıdaki hatayla senkronize etmeye çalıştığımda başarısız oluyor.

rsync error: protocol incompatibility (code 2) at io.c(599) [sender=3.1.0]
rsync: [receiver] write error: Broken pipe (32)

Bildiğim kadarıyla, rsync, hedef sunucunun da rsync kurulu olmasını gerektiriyor. Sanırım bu sorun oluyor, çünkü uzaktaki sunucu iki sürümlü bir Mac ise, bu komutu son sürüm (3.1) ile verdim (sistem varsayılanı 2.6.9).

Rsync komutumun doğru uzak rsync sürümünü kullandığından nasıl emin olabilirim?


Kopyanızı sistemden eski rsync sürümü ile çalıştırın.
Zoredache

Yanıtlar:


1

İlk olarak, bazı arka plan: rsync protokolünün 2. sürümü genişletilmiş dosya meta verilerini desteklemiyor. Apple, rsync sürümüne bir çeşit hack ekledi, genişletilmiş meta verileri AppleDouble biçiminde sahte dosyalar olarak gönderdi - yani file.txt için dosyanın içeriğini "file.txt" ve meta verilerini sahte dosya olarak eşitledi "._dosya.txt" dosyası. Rsync protokolünün 3. sürümü, genişletilmiş meta veriler için yerel destek ekledi, ancak elbette bu, sürüm 2 ile tamamen uyumlu değil.

Neyse ki, uzak bilgisayarda uyumlu bir rsync sürümünün nereye yüklendiğini bilmeniz koşuluyla çözüm kolaydır: --rsync-path=uyumlu uzaktan kumandayı nerede bulacağınızı belirlemek için bu seçeneği kullanın. Örneğin, rsync sürüm 3, hem yerel hem de uzak bilgisayarlarda / usr / local / bin / rsync3 sürümüne kurulursa, aşağıdakileri kullanırsınız:

/usr/local/bin/rsync3 -aNHX --fileflags --rsync-path=/usr/local/bin/rsync3 -e ssh ...etc...
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.