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

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

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

Предполагается, что предпочтительным решением является использование --iconv опция:

Вы можете использовать опцию --iconv rsync для конвертации между 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.

РЕДАКТИРОВАТЬ: Хотя Ян решил эту проблему (см. Мой отмеченный ответ), я все еще не совсем там, так как теперь я получаю новую ошибку:

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) доступен здесь.

Другие вопросы по тегам