Rsync между Ubuntu и Mac: как заставить работать опцию iconv

Rsync между Ubuntu и Mac: как заставить работать опцию iconv

Обычно я делаю резервное копирование между двумя машинами Ubuntu, но теперь я хочу использовать rsync для резервного копирования моего сервера Ubuntu с диском, находящимся на Mac. Но у меня это не работает должным образом.

В первый раз все хорошо, но, по-видимому, есть проблема со спецсимволами между машинами mac и ubuntu, так как каждый раз, когда я запускаю операцию rsync после этого, файлы со спецсимволами сначала удаляются, а затем повторно синхронизируются. Похоже, что есть проблема с разными наборами символов.

Theпредпочтительное решениепохоже, следует использовать --iconvопцию:

Вы можете использовать опцию rsync --iconv для преобразования между UTF-8 NFC и NFD, по крайней мере, если вы работаете на Mac. Существует специальный набор символов utf-8-mac, который обозначает UTF-8 NFD. Поэтому для копирования файлов с вашего Mac на NAS вам нужно будет запустить что-то вроде:

rsync -a --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/

Это преобразует все локальные имена файлов из UTF-8 NFD в UTF-8 NFC на удаленном сервере. Содержимое файлов не будет затронуто.

Это звучит хорошо, но мой Mac, похоже, не распознает эту опцию, так как я получаю:

>     MyMachine:~ Macuser$ /usr/bin/rsync -av --delete --iconv=utf-8,utf-8-mac user@linuxmachine:/home/linuxuser/Test/ /Users/Macuser/Test/
>     rsync: --iconv=utf-8,utf-8-mac: unknown option
>     rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-42/rsync/main.c(1333) [client=2.6.9]

Есть ли какие-нибудь предложения по решению этой проблемы?

Обратите внимание, как это, возможно, немного скрыто в «примере кода» выше, версия rsync на моем Mac — 2.6.9.

EDIT: Хотя Ян решил эту проблему (см. мой отмеченный ответ), я все еще не совсем там, поскольку теперь получаю новую ошибку:

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]

я сделаюотдельный запросоднако для этого дальнейшего вопроса.

решение1

В OS X 10.5 есть rsync 2.6.9, но опция iconv доступна только в rsync 3.x....

Чтобы обновить rsync на вашем Mac, вы можете использовать macports (Инструкция по установке).

Доступно руководство по Macport (и Homebrew)здесь.

Связанный контент