Обычно я делаю резервное копирование между двумя машинами 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)здесь.