Windows + ASCII olmayan dosya adlarında rsync


7

rsyncMevcut Windows sürümlerinde çalışan ve ASCII dışı dosya adlarını işleyebilen bir sürümü var mı ? Kontrol ettiğim her sürüm (cwRsync ve rsync.net istemcisi dahil), adlarında Unicode karakterleri olan dosyalarda sefilce başarısız oldu.

Eğer böyle bir sürüm rsyncmevcut değilse, Windows ve Linux arasında dosyaların bant genişliği verimli senkronizasyonu için başka hangi araçları kullanabilirim?

Büyük, nadiren değişen dosya ağaçlarını nispeten yavaş bir bağlantı üzerinden senkronize ediyorum. Rsync tarzı senkronizasyon ve tam kopya yaklaşımlar arasındaki fark önemlidir.


Test etmedim, peki ya cygwin'i kurmak ve rsync'lerini kullanmak?
gogators

@KevinVW: test ettim, cygwin'in rsyncsürümü şikayet ettiğim hatayı gösteriyor.
9000

--iconvseçeneği kullanmayı denediniz mi?
artistoex

1
@ artistoex: evet, --iconvgerçekten de sorunu çözüyor. Lütfen yorumunuzu bir cevap haline getirin, böylece kabul edebilirim :)
9000

Yanıtlar:


8

rsync, --iconvdosya adı karakter kodlaması dönüşümü için bir seçenek sunar . Kaynak ve hedef kodlaması üzerinde hassas kontrol kontrolü için argümanları kabul eder.

Rsync man sayfasından:

[...] you can fully specify what conversion to do by giving a 
local and a remote charset separated by a comma in the 
order --iconv=LOCAL,REMOTE, e.g.  --iconv=utf8,iso88591.

1
Dosyalarımı yedeklemek için Linux'ta sunucu olarak rsync daemon kullanıyorum. İstemci cwRsync, gönderme dosyaları için pencerelerde. Dosya adı kodlama problemiyle de karşılaşıyorum. --iconv=gbk,utf8Komut satırına eklendiğimde args, hatanın altına düştü. Bunu nasıl kaybedebilirim? artımlı dosya listesi gönderme rsync: writefd_unbuffered, 4 byte yazamadı [gönderen]: Eş tarafından bağlantıyı sıfırla (104) rsync: okuma hatası: Eş tarafından bağlantıyı sıfırla (104) rsync hatası: / ssync protokolü veri akışında hata (kod 12) / ana sayfa / lapo / paketleme / rsync-3.0.4-1 / src / rsync-3.0.4 / io.c (791) [gönderen = 3.0.4]
IlPADlI

Bunu ayrı bir soru olarak göndermelisiniz
artistoex

Ama problemin burada tarif edilene
artistoex

2

DeltaCopy kullanmaya çalıştıysanız, http://www.oki-osk.jp/esc/utf8-cygwin/ adresinden UTF-8 özellikli cygwin (= cygwin1.dll) 'yi edinin . En azından 2006'dan beri var.

Dll ikili dosyasını iki kez 7zip kullanarak açın. Sonra orjinal cygwin1.dll dosyasını DeltaCopy program klasörünüzden çıkarın ve yenisini koyun. Dikkat: Eski ve yeninin görünüşleri tamamen aynıdır. Hangisinin yenisi olduğunu açık tutun. İstemci ve sunucudaki dll'yi değiştirdikten sonra, iletim iki Windows makinesi arasında düzgün çalışır. Ne yazık ki, müşteri konsolu çok bayramlı UTF-8 karakterleri olan bazı dosya adlarını göstermeye çalıştığında anlamsız görüntüler, ancak transmissin çalışıyor.

Yedekleme sunucusunda Linux veya başka bir UNIX benzemesi varsa (örneğin Nas4Free) ve yalnızca Windows makinesindeki istemci düzeltildiyse ne olacağını henüz denemedim.

Açıkçası rsync UTF-8'i kullanıyor ancak cygwin kullanmıyor. DeltaCopy'nin cygwin'sinde UTF-8 dosya isimleri ilk başta yanlış yazılmış ve bir dosyanın kopyası oluşturulmaya çalışıldığında, dosya ortadan kalkmış görünüyor.


1
kırık link 404
Hernán Eche
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.