9 votos

Rsync con servidor Linux: problema de caracteres especiales

Tengo un problema con el uso de rsync para la copia de seguridad de los archivos en mi máquina linux remota a mi Mac. La primera vez todo va 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 se borran primero y luego se vuelven a sincronizar. Parece que hay un problema con los diferentes juegos de caracteres.

El solución preferida parece ser utilizar el --iconv opción:

Puedes usar la opción --iconv de rsync para convertir entre UTF-8 NFC y NFD, al menos si estás en un Mac. Hay un juego de caracteres especial utf-8-mac que significa UTF-8 NFD. Así que para copiar archivos de su Mac a su NAS, tendría que 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 muy bien, pero mi mac no parece reconocer esa opción, ya que me sale:

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

EDIT: la versión de 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 el --iconv opción, ¿cómo puedo actualizar de forma segura?

EDIT: Finalmente me di cuenta de que además de actualizar rsync, también tenía que cambiar el orden en el que especificaba los conjuntos de caracteres, así que añadí una respuesta más abajo.

0 votos

¿Qué versión de rsync tienes?

0 votos

2.6.9. -- ver edición.

12voto

Nick The Swede Puntos 33

Al final me di cuenta de que, además de actualizar rsync, tenía que cambiar el orden en el que especificaba los conjuntos de caracteres: Pensaba que había que especificar el juego de caracteres en el orden de transformación; pero parece que no es la sintaxis correcta. Más bien, uno debería siempre utilice --iconv=utf-8-mac,utf-8 al inicializar el rsync desde el mac, y siempre utilice --iconv=utf-8,utf-8-mac al inicializar el rsync desde la máquina linux, no importa si quiero sincronizar archivos desde la máquina mac o linux.

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

8voto

yoliho Puntos 340

El argumento --iconv se añadió en la versión 3.0.0 de rsync ( notas de publicación ) OSX sólo proporciona la versión 2.6.9 (véase Página de código abierto de Apple )

Por lo tanto, necesita obtener una versión más reciente de rsync. La última es la 3.1.2 (la 2.6.9 se publicó en 2006)

Yo también conseguiría una versión más reciente de rsync ya que la copia de xattr también se introdujo después de 2.6.9

Creo que la forma más sencilla de conseguir un nuevo rsync es instalar un gestor de paquetes como Macports o Homebrew y luego instalar rsync o se puede instalar desde el fuente

0 votos

Gracias. Ahora tengo la versión 3.1.1 en mi Mac, pero me sigue apareciendo un mensaje de error: 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: conexión cerrada inesperadamente (0 bytes recibidos hasta el momento) [Receptor] rsync error: error en el flujo de datos del protocolo rsync (código 12) en io.c(226) [Receptor=3.1.1] -- hay diferentes versiones en la máquina remota y en la local, obviamente, pero dado que ambas están por encima de la 3.0.0, ¿por qué importa eso?

0 votos

Lo siento, no sé más que crear una nueva pregunta - probablemente en SuperUser como sospecho que un problema no OSX específica

0 votos

Lo haré - ¡muchas gracias por guiarme en la dirección correcta, en cualquier caso!

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X