Uso rsync con las siguientes banderas fácilmente memorables como 'glop' y 'trunc' y 'v'.
rsync -gloptrunc $srcdir $dstdir
Una breve guía:
- g - preservar la información de propiedad del grupo
- l - copiar enlaces simbólicos como enlaces simbólicos
- o - preservar la información del propietario
- p - preservar permisos
- t - preservar las marcas de tiempo
- r - recurse a través de directorios
- u - actualizar, omitir los archivos más nuevos
- [n] - no, no hagas esto, haz una carrera en seco
- c - suma de comprobación, intente sumas de comprobación en bloques de archivos cuando sea posible (*)
nota: en los sistemas de archivos locales, esto se anula y en su lugar se copian archivos completos.
- v - detallado
Siempre ejecuto lo anterior para asegurarme de que funciona, luego elimino la bandera 'n' que una vez que estoy satisfecho con los resultados.
Las características clave de las combinaciones anteriores:
- Lo ejecuto en AMBAS direcciones entre dos (o más) servidores, sincronizando así en AMBAS direcciones. Actualizas lo que creas que es el maestro en ese momento.
- Permite que cualquiera sea el maestro, con la importante advertencia de que si desea eliminar algo, debe eliminarlo en ambos para asegurarse de que realmente desapareció, de lo contrario, vuelve.
Utilizo esto para mantener dos máquinas sincronizadas, o para mantener las subdirecciones sincronizadas (como hacer una copia de seguridad en una unidad USB).
Como una de las otras publicaciones indicadas anteriormente, la 'suma de verificación' en realidad puede ser desactivada si se trata de unidades locales.
En algunos casos raros, tuve que agregar parámetros adicionales para dar cuenta de los cambios en las cuentas de inicio de sesión en máquinas remotas, cambiar puertos e incluso especificar dónde vive 'rsync' en el host remoto ... pero esos no son directamente aplicables a su pregunta.