Rsync entre Ubuntu e Mac: como fazer a opção iconv funcionar

Rsync entre Ubuntu e Mac: como fazer a opção iconv funcionar

Normalmente faço backup entre duas máquinas Ubuntu, mas agora quero usar o rsync para fazer backup do meu servidor Ubuntu com um disco residente em um Mac. Mas não consigo que funcione corretamente.

Na primeira vez está tudo bem, mas aparentemente há um problema com caracteres especiais entre a máquina mac e ubuntu, já que toda vez que executo a operação rsync depois disso, os arquivos com caracteres especiais são primeiro excluídos e depois sincronizados novamente. Parece que há um problema com diferentes conjuntos de caracteres.

Osolução preferidaparece ser usar a --iconvopção:

Você pode usar a opção --iconv do rsync para converter entre UTF-8 NFC e NFD, pelo menos se estiver em um Mac. Existe um conjunto especial de caracteres utf-8-mac que significa UTF-8 NFD. Portanto, para copiar arquivos do seu Mac para o NAS, você precisará executar algo como:

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

Isso converterá todos os nomes de arquivos locais de UTF-8 NFD para UTF-8 NFC no servidor remoto. O conteúdo dos arquivos não será afetado.

Parece muito bom, mas meu mac parece não reconhecer essa opção, pois recebo:

>     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]

Alguma sugestão sobre como esse problema deve ser resolvido?

Observe que, como talvez esteja um pouco oculto no 'exemplo de código' acima, a versão do rsync no meu Mac é 2.6.9.

EDITAR: Embora Jan tenha resolvido esse problema (veja minha resposta marcada), ainda não cheguei lá, pois agora recebo um novo erro:

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]

eu vou fazeruma consulta separadapara esta questão adicional, no entanto.

Responder1

OS X 10.5 possui rsync 2.6.9, mas a opção iconv só está disponível no rsync 3.x....

Para atualizar o rsync no seu mac você pode usar macports (instruções de instalação).

Um tutorial para Macport (e Homebrew) está disponívelaqui.

informação relacionada