2 votos

¿Mantener el bloqueo de archivos de Finder durante rsync?

Estoy usando rsync para mantener dos discos sincronizados. Utilizo el --archive que tiene por objeto mantener los permisos. Sin embargo, los archivos que están "bloqueados" en Finder no se muestran como bloqueados después de la rsync operación se ha completado. ¿Cómo puedo replicar el bloqueo del Finder durante rsync ?

3voto

Abramodj Puntos 1771

La versión de rsync que proporciona MacOS tiene unos 15 años de antigüedad y no maneja la preservación de las banderas de archivo soportadas por chflags (por ejemplo UF_IMMUTABLE o "Bloqueado" como se establece con chflags uchg ).

Las versiones actuales de rsync tener:

--fileflags Esta opción hace que rsync actualice las banderas de los archivos para que sean las mismas que las de los archivos y directorios de origen (si su sistema operativo soporta la llamada al sistema chflags(2)).

Instalar Homebrew y actualizar rsync a una versión moderna con:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew install rsync

Si está realizando una transferencia remota, tanto el host emisor como el receptor deben soportar --fileflags obviamente.

Sin embargo, si la versión necesaria de rsync no está en la versión por defecto del remote-shell (por ejemplo /usr/bin:/bin:/usr/sbin:/sbin ), debe especificarse la ruta de acceso a la versión requerida. Esto se hace con la opción --rsync-path=PROGRAM opción.

Por ejemplo:

rsync --fileflags -avz ${HOME}/ remotehost:${HOME}

errores cuando el host remoto por defecto rsync no admite --fileflags :

rsync: en la máquina remota: --fileflags: opción desconocida

Error de rsync: error de sintaxis o de uso (código 1) en /AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-54.120.1/rsync/main.c(1337) [server=2.6.9]

rsync: conexión cerrada inesperadamente (0 bytes recibidos hasta el momento) [remitente] error rsync: error en el flujo de datos del protocolo rsync (código 12) en io.c(228) [sender=3.2.3]

Suponiendo que el requisito rsync se instala en /usr/local/bin , esto se resuelve con:

rsync --rsync-path=/usr/local/bin/rsync --fileflags -avz ${HOME}/ remotehost:${HOME}

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