¿Cómo mantener un directorio clonado remoto con rsync?

¿Cómo mantener un directorio clonado remoto con rsync?

Tengo acceso SSH (usando un par de claves SSH) a una máquina remota. Quiero mantener un directorio en la máquina remota exactamente igual a un directorio local determinado (sincronización unidireccional). La verificación de la igualdad de archivos debe realizarse en función de un hash del contenido del archivo binario (no del tamaño/fecha).

  1. ¿Cuál es el comando rsync correcto para hacer eso (no el servicio rsync)?
  2. ¿Cómo se manejan los permisos de archivos?
  3. ¿Cómo se manejan las fechas de modificación de archivos?
  4. ¿Cómo reacciona rsync ante fallas y cuál es el código de salida?

Respuesta1

Rsync verifica el contenido del archivo, no la fecha y/o el tamaño del archivo. Si los contenidos son diferentes pero tienen la misma ruta y nombre, el archivo se sobrescribirá.

La sintaxis de rsync es rsync options source destinationla siguiente: si desea mantener un directorio remoto sincronizado con uno local, esto debería funcionar:

rsync -azh local_folder user@remote_server:/path/to/destination/

Si desea utilizar SSH como protocolo de transferencia, esto funciona para mí:

rsync -azhe ssh local_folder user@remote_server:/path/to/destination

¿Cómo se manejan los permisos de archivos? ¿Cómo se manejan las fechas de modificación de archivos?

El aparámetro conserva enlaces simbólicos, permisos de archivos, marcas de tiempo... si no desea transferir esta información, simplemente exclúyala del comando, será propiedad del usuario con el que inició sesión SSH.

¿Cómo reacciona rsync ante fallas y cuál es el código de salida?

La mayoría de los comandos/programas devuelven 0 cuando tienen éxito y cualquier otro número en caso de error.Aquí hay una lista de códigos de salida de rsyncpara referencia

información relacionada