Tengo dos servidores y quiero rsync
archivos 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
rsync
el 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.