Ubuntu sunucumu Mac'te bulunan bir diskle yedeklemek için rsync kullanmak istiyorum. Ancak düzgün çalışmıyorum, çünkü ilk kez rsync işlemini her çalıştırdığımda, özel karakterlere sahip dosyalar önce silinir ve sonra yeniden senkronize edilir. Farklı karakter kümelerinde bir sorun varmış gibi görünüyor.
Tercih çözüm kullanmak gibi görünüyor --iconv
seçeneği:
En azından Mac kullanıyorsanız, UTF-8 NFC ve NFD arasında dönüştürme yapmak için rsync'in --iconv seçeneğini kullanabilirsiniz. UTF-8 NFD anlamına gelen özel bir utf-8-mac karakter seti vardır. Mac'inizden NAS'ınıza dosya kopyalamak için aşağıdakine benzer bir şey çalıştırmanız gerekir:
rsync -a --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
Bu, tüm yerel dosya adlarını UTF-8 NFD'den uzak sunucudaki UTF-8 NFC'ye dönüştürür. Dosyaların içeriği etkilenmez.
@Jan sayesinde, rsync sürümümü mac bilgisayarımda 2.6.9'dan güncelledim . 3.1.1. Hala başka bir hata aldığım için hala orada değilim:
iconv_open("UTF-8", "utf-8-mac") failed
rsync error: requested action not supported (code 4) at rsync.c(118) [sender=3.0.9]
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.1]
Benim Ubuntu (12.04) rsync sürümü sonrası 3.xx olduğu ve bu nedenle --iconv
seçeneği desteklemesi gerektiği için neden "istenen eylem desteklenmiyor" anlamak için kayıp .
DÜZENLEME: Ben (Mac, nota bene) Mac'ten Linux'a bir rsync başlattığımda, her şeyin görkemli bir şekilde çalıştığını ekleyeyim:
rsync -av --delete --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
Ama diğer taraftan gitmek 'mac çalışmıyor. Garip bir şekilde, lins makinesinden rsync'i başlatmak için test yapmak bu garip mesajı veriyor:
rsync: on remote machine: --iconv=UTF-8-MAC: unknown option
rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-45/rsync/main.c(1333) [server=2.6.9]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
[server=2.6.9]
Mac'te 3.1.1'e güncellememe rağmen çok garip iddia da dahil . Bazı nedenlerden dolayı, linux makinem Mac'te sadece orijinal rsync sürümünü 'görüyor'.
Bunun nasıl çözüleceğine dair herhangi bir öneriniz var mı?