Rsync con servidor Linux: problema de caracteres especiales

3

Tengo un problema con el uso de rsync para hacer copias de seguridad de archivos en mi máquina Linux remota en mi Mac. La primera vez, todo está bien, pero aparentemente hay un problema con los caracteres especiales entre la máquina mac y linux, ya que cada vez que ejecuto la operación rsync después de eso, los archivos con caracteres especiales primero se eliminan y luego se vuelven a sincronizar. Parece como si hubiera un problema con diferentes conjuntos de caracteres.

La solución preferida parece ser usar la opción --iconv :

  

Puedes usar la opción --iconv de rsync para convertir entre UTF-8 NFC & NFD,   Al menos si estás en una Mac. Hay un caracter especial de utf-8-mac   conjunto que significa UTF-8 NFD. Así que para copiar archivos de tu Mac a tu   NAS, necesitarías ejecutar algo como:

     

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

     

Esto convertirá todos los nombres de archivos locales de UTF-8 NFD a UTF-8 NFC en el   servidor remoto. El contenido de los archivos no se verá afectado.

Eso suena bien, pero mi Mac no parece reconocer esa opción, ya que recibo:

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

¿Alguna sugerencia sobre qué hacer?

EDITAR: la versión rsync en mi mac es 2.6.9.

Macuser$ rsync --version
rsync  version 2.6.9  protocol version 29

Si esa versión no admite la opción --iconv , ¿cómo actualizo de manera segura?

EDITAR: finalmente descubrí que, además de actualizar rsync, también tuve que cambiar el orden en el que especificé los conjuntos de caracteres, así que agregué una respuesta a continuación.

    
pregunta Nick The Swede 08.10.2014 - 11:34

2 respuestas

6

Finalmente descubrí que, además de actualizar rsync, también tuve que cambiar el orden en el que especificaba los conjuntos de caracteres: pensé que se suponía que debías especificar el conjunto de caracteres en el orden de transformación; Pero parece que esa no es la sintaxis correcta. Más bien, uno debería siempre utilizar --iconv=utf-8-mac,utf-8 al inicializar rsync desde mac, y siempre utilizar --iconv=utf-8,utf-8-mac al inicializar rsync desde la máquina de Linux, no importa si desea sincronizar archivos desde la máquina mac o linux.

¡Entonces la solución de @ Mark funciona como magia!

    
respondido por el Nick The Swede 06.01.2015 - 13:10
3

El argumento --iconv se agregó en la versión 3.0.0 de rsync ( notas de la versión ) OSX solo proporciona la versión 2.6.9 (consulte página de código abierto de Apple )

Por lo tanto, necesita obtener una versión más nueva de rsync. El último es 3.1.2 (2.6.9 fue lanzado en 2006)

También obtendría una versión más nueva de rsync, ya que la copia xattr también se introdujo después de 2.6.9

Creo que la forma más sencilla de obtener un nuevo rsync es instalar un administrador de paquetes como Macports o Homebrew y luego instalar rsync o puede instalarlo desde fuente

    
respondido por el Mark 08.10.2014 - 13:30

Lea otras preguntas en las etiquetas