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