Saya ingin menggunakan rsync untuk membuat cadangan server Ubuntu saya dengan disk yang berada di Mac. Tetapi saya tidak membuatnya berfungsi dengan baik, karena setiap kali saya menjalankan kembali operasi rsync setelah waktu awal, file dengan karakter khusus pertama kali dihapus dan kemudian disinkronkan kembali. Sepertinya ada masalah dengan rangkaian karakter yang berbeda.
The solusi pilihan tampaknya menggunakan --iconv
opsi:
Anda dapat menggunakan opsi --iconv rsync untuk mengkonversi antara UTF-8 NFC & NFD, setidaknya jika Anda menggunakan Mac. Ada set karakter utf-8-mac khusus yang merupakan singkatan dari UTF-8 NFD. Jadi untuk menyalin file dari Mac ke NAS Anda, Anda harus menjalankan sesuatu seperti:
rsync -a --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
Ini akan mengonversi semua nama file lokal dari UTF-8 NFD ke UTF-8 NFC pada server jarak jauh. Konten file tidak akan terpengaruh.
Berkat @Jan, saya memperbarui versi rsync saya di mac saya dari 2.6.9. ke 3.1.1. Namun, saya masih belum cukup di sana, karena sekarang saya menerima kesalahan lebih lanjut:
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]
Saya bingung untuk memahami mengapa "tindakan yang diminta tidak didukung" karena tampaknya versi rsync pada Ubuntu saya (12.04) adalah posting 3.xx, dan karenanya harus mendukung --iconv
opsi tersebut.
EDIT: Izinkan saya menambahkan bahwa ketika saya (di Mac, nota bene) memulai rsync DARI Mac TO Linux, semuanya bekerja dengan baik:
rsync -av --delete --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
Tapi sebaliknya 'dari mac tidak bekerja. Anehnya, pengujian untuk memulai rsync dari mesin linux membuat pesan aneh ini:
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]
termasuk klaim yang sangat aneh [server=2.6.9]
, meskipun saya telah memperbarui ke 3.1.1 di Mac. Untuk beberapa alasan, sepertinya mesin linux saya 'hanya melihat' versi rsync asli di Mac.
Ada saran tentang cara mengatasi ini?
Saya dapat mengkonfirmasi ini berfungsi, saya mengalami masalah yang sama. Dalam kasus saya, file apa pun dengan karakter beraksen tidak dapat dibaca di tujuan. Saya hanya melihatnya dengan menjalankan perbandingan folder di Mac saya menggunakan aplikasi Compare Folders: https://itunes.apple.com/gb/app/compare-folders/id816042486?mt=12
Menambahkan di atas --iconv = utf-8-mac, utf-8 dan BOOM! rsync mengganti setiap file beraksen dengan yang baru.
Untuk menambahkan beberapa informasi karena tampaknya tautan di atas tidak lagi berfungsi, untuk memutakhirkan rsync ke 3.1.2, instal Macports dan jalankan: sudo port install rsync
Alasan mengapa Anda melihat server jauh mengembalikan versi 2.6.9 adalah karena versi lama sebenarnya masih ada dan server jauh melihat yang bukan yang baru.
Versi 2.6.9 terletak di / usr / bin
sumber