5 votos

Sistema utilizando la versión antigua de rSync en lugar de la nueva versión

Tengo una computadora Mac y me gustaría enviar copias de seguridad a un Synology NAS.

Apple tiene rSync 2.6.9 precargado en el sistema operativo.

Instalé rSync 3.1.3 usando HomeBrew ya que Synology Active Backup requiere al menos la versión 3.0. HomeBrew instaló rSync en /usr/local/bin/rsync.

El problema es que cuando me conecto a la computadora Mac usando rSync, la Mac utiliza la versión 2.6.9 en lugar de la nueva que instalé. ¿Cómo puedo hacer para que use la nueva en lugar de la antigua?

Sé que puedo cambiar el PATH para el usuario local y colocar /usr/local/bin/rsync antes que /usr/bin/rsync. Funciona cuando estoy conectado usando la terminal o SSH. Sin embargo, cuando me conecto usando Synology, siempre invoca a la versión 2.6.9 lo cual no lo hace funcional.

¿Hay algo que pueda hacer para que el sistema use la versión 3.1.3 en /usr/local/bin/rsync en lugar del original que venía con la computadora?

Gracias de antemano.

0 votos

Hola. ¿Qué sistema operativo se conecta a macOS e inicia el rsync? Creo que el launchd que recibe la conexión ssh entrante genera el rsync predeterminado y no el más nuevo, pero quiero estar seguro de qué puerto está llegando a la Mac desde Synology

0 votos

Synology Active Backup utiliza rSync para conectarse a MacOS. Básicamente, el NAS de Synology utiliza --protect-args, que no está disponible en la versión sub 3.0 de rSync. ¿Cómo puedo hacer para que launchd y la conexión ssh generen la nueva versión de rSync?

1 votos

Parece ser un duplicado de sitios cruzados de superusuario: Problemas para negociar versiones de protocolo de rsync. Resumen: agregar --rsync-path=/usr/local/bin/rsync.

4voto

Jose Chavez Puntos 645

La respuesta depende de cómo hayas configurado ActiveBackup, ya que puedes ejecutarlo de tres formas diferentes:

1) Modo shell de Rsync a través de SSH

2) Modo de módulo Rsync (directamente)

3) Modo de módulo Rsync a través de SSH

Cuando uses el modo 1, ActiveBackup iniciará sesión en la Mac y arrancará rsync él mismo. Esto no pasa a través de launchd en absoluto. Veo que te han aconsejado usar "--rsync-path", pero esa no es una opción para ti, simplemente porque ActiveBackup no te permite configurar este parámetro.

En lugar de eso, lo que necesitas hacer es asegurarte de que cuando ActiveBackup inicie rsync en el servidor remoto, arrancará la versión correcta, SIN la posibilidad de cambiar qué comando ActiveBackup envía. Hay dos formas de hacer esto dependiendo de si tu versión de ActiveBackup es la que emite el comando "rsync" o la que emite el comando "/usr/bin/rsync".

Si es la primera (prueba esto primero), entonces edita el archivo /private/etc/paths y asegúrate de que la línea "/usr/local/bin" viene antes de la línea "/usr/bin".

Si es la segunda, entonces usa estos pasos:

  1. Reinicia la Mac en Modo de Recuperación

  2. Abre Terminal y deshabilita SIP: "csrutil disable"

  3. Reinicia y abre Terminal

  4. Aleja el antiguo rsync: "mv /usr/bin/rsync /usr/bin/rsync.orig"

  5. Vincula el nuevo rsync: "ln -s /usr/local/bin/rsync /usr/bin/rsync"

Querrás probar esto con ActiveBackup, y luego reiniciar en Modo de Recuperación para volver a habilitar SIP con "csrutil enable".

Ten en cuenta que una actualización de macOS posterior podría reemplazar rsync. Si eso sucede, simplemente repite el proceso. Ten en cuenta que como Apple no ha actualizado rsync durante años, es poco probable que ocurra.

Si estás usando el modo 2, ActiveBackup se comunica directamente con el demonio rsync, y no inicia el comando rsync en la Mac. En este caso, no puedes usar el consejo de usar "--rsync-path", ya que no se aplica en absoluto. Cómo solucionarlo depende de cómo hayas iniciado realmente el demonio rsync. Como no has detallado nada acerca de cómo iniciarlo, asumo que esto significa que en realidad no lo has iniciado.

Sin embargo, si seguiste una guía para habilitar rsyncd, probablemente lo hayas hecho agregando un "LaunchDaemon" de launchd. En ese caso, deberás cambiar tu archivo de launch daemon y encontrar la clave "Program" y cambiar el elemento de cadena correspondiente a:

/usr/local/bin/rsync

Si estás usando el modo 3, querrás seguir la guía para el modo 1, ya que son necesarios los mismos pasos.

0 votos

@GordonDavisson Los pasos para volver a activar SIP ya se encuentran en la respuesta, se enumeran justo debajo del paso 5.

0 votos

Ups, me he equivocado. Voy a eliminar mi comentario.

0 votos

Estoy tratando de evitar alejar el antiguo rSync ya que puede que no sea una solución permanente y no sé qué otras consecuencias están presentes. Hasta ahora, parece que el modo 2 es la mejor opción ya que no me requiere hacerlo. La pregunta es, ¿sabes de una guía confiable que pueda seguir para habilitar rsyncd?

0voto

user77613 Puntos 1

Tuve exactamente el mismo problema, pero no quería cambiar la versión de rsync para todos en el servidor osx (estoy enfrentando el escenario 3 como @jksoegaard lo describió). Logré simplemente cambiar el PATH para la sesión de ssh que rsync utiliza al cambiar el shell de inicio del usuario de /bin/bash a un script (solo mi usuario puede leer y modificar) que contiene:

#!/bin/bash
export PATH="/usr/local/bin:$PATH"
/bin/bash "$@"

Básicamente, esto añade /usr/local/bin al PATH y luego pasa todos los argumentos a bash. El usar ~/.bashrc, ~/.bash_profile, etc. no funcionó para mí por alguna razón.

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