Estoy tratando de configurar rsync para sincronizar mi servidor web principal con el servidor remoto agregando un archivo recién generado a la posterior.
Aquí está el comando que uso:
rsync -avh --update -e "ssh -i /path/to/thishost-rsync-key" remoteuser@remotehost:/foo/bar /foo/bar
Pero parece que el servidor web realmente transfiere todos los archivos a pesar del indicador '--update'. He intentado diferentes combinaciones de banderas (por ejemplo, omitiendo '-a' y usando '-uv' en su lugar) pero ninguna me ayudó. Entonces, me pregunto cómo puedo modificar el comando rsync para enviar solo archivos recién agregados. Gracias
rsync /foo/bar remoteuser@remotehost:/foo/bar
-a
opciones que implica (propietario, grupo, permisos, ...), debería ser la causa de nuestro problema.-c
opción. Omite los archivos existentes en función de una suma de verificación, en lugar del tiempo o tamaño de modificación.Respuestas:
De
man rsync
:--update
hace algo ligeramente diferente, lo que probablemente sea la razón por la que está obteniendo resultados inesperados (verman rsync
):fuente
--ignore-existing
significa que no transfiera los archivos que existen en el receptor, o no transfiera archivos si existe algún archivo / carpeta con el mismo nombre en el receptor?En mi caso tuve problemas similares, transfiriendo todos los archivos en lugar de solo los modificados / nuevos. Resolví esto usando parámetros
-t
(en lugar de-a
) y-P
(equivalente a--partial --progress
):Esto transfiere solo archivos nuevos y archivos ya existentes pero modificados:
-a
hace demasiado, como la sincronización de ID de usuario y grupo, que en mi caso no puede funcionar, ya que tengo diferentes usuarios y grupos en mis sistemas de origen y destino.Los parámetros en detalle:
-h
: números legibles por humanos-v
: detallado-r
: recurse en directorios-P
:--partial
(mantener archivos parcialmente transferidos) +--progress
(mostrar progreso durante la transferencia)-t
: preservar tiempos de modificaciónfuente
-rlptgoD
, por lo que el permiso no se aplasta, los grupos y el propietario se preservan, no mi copia de seguridad típica para jugar ...)Desde mi experiencia con rsync, una copia de partición de 1TB es demasiado grande para ser eficiente. Se necesita rsync para siempre para procesarlo. En cambio, hágalo por subdirectorios. Es decir, ejecute rsync para cada subdirectorio principal. Va mucho más rápido si no tiene que hacer malabarismos con decenas de miles de archivos.
fuente
Tratar
fuente