rsync desde dos servidores a una ubicación común

rsync desde dos servidores a una ubicación común

Tengo dos servidores y quiero rsyncarchivos de ambos servidores en una sola ubicación.

  • El servidor 1 tiene los archivos A y B
  • El servidor 2 tiene los archivos A y B
  • Después de que rsyncel servidor 3 tenga los archivos A y B

Cuando un usuario elimina el archivo A del servidor 1 y el archivo B del servidor2, el servidor 3 no debería tener ningún archivo.

Pero no funciona correctamente en mi configuración:

  • rsync --delete server1 server3
  • rsync --delete server2 server3

Elimina A primero y B segundo, pero A se copiará nuevamente desde el servidor 2. En lugar de obtener un directorio vacío, termino nuevamente con A.

¿Alguien tiene una solución para esto?

Respuesta1

El comando rsync que estás haciendo es hacer que server3 sea una copia estricta de cualquier servidor desde el que esté copiando. Entonces se convierte en un clon del servidor1 (falta A y falta B), luego le dices que sea un clon del servidor2 (falta A y falta B)

¿Puedes retroceder un nivel y explicar qué pretendes hacer aquí?

Respuesta2

Has probado

rsync -u --delete server1 server3
rsync --delete server2 server3

Desde la página de manual de rsync:

  -u, --update                update only (don’t overwrite newer files)

Ya sea el servidor1 o el servidor2 quien realiza la sincronización primero, respetará si el archivo ya está en el servidor3.

Sin embargo, tenga en cuenta que debe colocar sus comandos rsync en 1 script y colocar un archivo de marca para indicar que la sincronización no se ejecutará si el otro se está ejecutando.

Déjame saber si eso ayuda.

información relacionada