rsync reconcilia archivos y árboles de directorios evitando transferir innecesariamente datos que no han cambiado. Su eficiencia no hace seguras todas las invocaciones: la sintaxis del origen, las barras finales, los metadatos, las exclusiones y la política de eliminación determinan el resultado.
Compartir Red · Lección 2
rsync
Aprende a previsualizar, ejecutar y comprobar una sincronización segura de directorios, local o mediante SSH, con rsync.
Interpretar el origen y el destino
Sincroniza localmente el contenido de source/ dentro de destination/:
$ rsync -a -- source/ destination/
La barra final de source/ significa «copia el contenido de este directorio». Sin ella, rsync -a source destination/ crea o actualiza destination/source. Previsualiza siempre las rutas resultantes cuando cambies la colocación de la barra.
¿Qué significa la barra final de rsync -a source/ destination/?
Comprender el modo de archivo
El modo de archivo, -a, equivale a un conjunto de opciones recursivas y de conservación de metadatos que suele resumirse como -rlptgoD. Conserva enlaces simbólicos, permisos, horas de modificación, grupos, propietarios y archivos de dispositivos o especiales cuando los permisos y la plataforma lo permiten.
El modo de archivo no incluye la conservación de enlaces duros, ACL ni atributos extendidos; normalmente requieren -H, -A y -X. Tampoco crea versiones históricas por sí solo.
¿Qué metadato no incluye -a por sí solo?
Previsualizar una transferencia
Utiliza una simulación con cambios detallados antes de una sincronización importante:
$ rsync -a --dry-run --itemize-changes -- source/ destination/
Una simulación predice las acciones según el análisis actual; no puede garantizar que los archivos no cambien antes del comando real. Guarda y revisa el comando exacto y ejecútalo sin --dry-run solo después de confirmar ambos puntos finales.
¿Qué proporciona --dry-run --itemize-changes?
Sincronizar mediante SSH
Envía datos a un host remoto u obtenlos de él mediante el operando remoto habitual:
$ rsync -a -- source/ alice@example.net:/srv/data/
$ rsync -a -- alice@example.net:/srv/data/ destination/
Rsync moderno suele utilizar SSH para esta forma, pero confirma el shell remoto configurado, la clave del host, los privilegios de la cuenta y la disponibilidad de rsync remoto. La compresión con -z puede ayudar con datos comprimibles en un enlace limitado, pero puede desperdiciar CPU con datos ya comprimidos.
¿Qué orden de operandos obtiene datos remotos en un directorio local?
Tratar la eliminación como destructiva
--delete elimina las entradas del destino que no existen en el origen dentro del ámbito sincronizado. Por tanto, invertir los puntos finales, usar una barra incorrecta o definir una exclusión errónea puede borrar datos válidos. Previsualiza contra un destino de prueba, asegúrate de disponer de copias recuperables, revisa el estado de montaje y considera límites máximos de eliminaciones antes de autorizarlo.
Después de la ejecución real, inspecciona el estado de salida y los registros, compara la cantidad esperada de archivos y los metadatos, y prueba contenido representativo o una restauración. La sincronización mediante rsync por sí sola replica eliminaciones o daños no deseados y no constituye una estrategia completa de copias de seguridad.
¿Qué puede hacer --delete durante la sincronización?
Lección completada
Has completado rsync
Ahora puedes previsualizar y comprobar una operación rsync sin ocultar sus casos destructivos.
Utiliza barras finales para expresar la disposición prevista de los directorios.
Añade las opciones de metadatos que no cubra el modo de archivo cuando sean necesarias.
Revisa la salida detallada de la simulación antes de sincronizar realmente.
Comprueba la identidad SSH y la dirección de los puntos finales.
Trata la eliminación y la conservación de copias como políticas explícitas.
Guarda tu progreso
Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.
Crear una cuenta gratuita