rsync em nomes de arquivos Windows + não-ASCII

4

Existe uma versão de rsync que é executada nas versões atuais do Windows e pode manipular nomes de arquivos não-ASCII? Todas as versões que eu verifiquei (incluindo cwRsync e rsync.net client) falham miseravelmente em arquivos com caracteres Unicode em nomes.

Se essa versão do rsync não existir, que ferramenta outra eu poderia usar para a sincronização de arquivos com eficiência de largura de banda entre o Windows e o Linux?

Estou sincronizando árvores de arquivos grandes e raramente alteradas em um link relativamente lento. A diferença entre as abordagens de sincronização de estilo rsync e de cópia completa é significativa.

    
por 9000 01.05.2013 / 22:07

2 respostas

8

O rsync oferece uma opção --iconv para conversão de codificação de caracteres de nome de arquivo. Aceita argumentos para um controle refinado sobre a codificação de origem e destino.

Na página do manual do rsync:

[...] you can fully specify what conversion to do by giving a 
local and a remote charset separated by a comma in the 
order --iconv=LOCAL,REMOTE, e.g.  --iconv=utf8,iso88591.
    
por 12.05.2013 / 11:51
1

Se você tentou usar o DeltaCopy, obtenha o cygwin compatível com UTF-8 (= cygwin1.dll) link A solução tem sido uma obrigação para os japoneses e eles tiveram, pelo menos, desde 2006.

Descompacte o binário da dll usando 7zip duas vezes. Em seguida, remova o cygwin1.dll original da sua pasta do programa DeltaCopy e coloque o novo em seu lugar. Cuidado: O antigo e o novo têm aparências exatamente iguais. Mantenha claro qual é o novo. Depois de alterar a dll no cliente e no servidor, a transmissão funciona bem entre duas máquinas Windows. Infelizmente, o console do cliente exibe um jargão quando tenta mostrar algum nome de arquivo com caracteres UTF-8 de múltiplos bytes, mas a transmissina funciona.

Eu não tentei o que acontece se o servidor de backup tem Linux ou algum outro UNIX-like (por exemplo, Nas4Free) e apenas o cliente na máquina Windows é fixo.

Obviamente, o rsync lida com o UTF-8, mas o cygwin não. No cygwin do DeltaCopy, os nomes de arquivo UTF-8 são inicialmente incorretos e quando uma cópia de um arquivo é tentada, o arquivo parece ter desaparecido.

    
por 05.01.2014 / 18:24