// Engineering Log
Protocolos de transferencia de archivos: Parte 7 — Rsync
Publicado el 22.09.2026
// Ruta rapida
Este articulo pertenece al tema Servidores e infraestructura.
Rsync — utilidad para copiar y sincronizar archivos, herramienta estándar de administradores de Linux y Unix. Su característica principal es la transferencia delta: si el archivo ya existe en el lado de destino, rsync transmite sólo las partes que han cambiado, no el archivo completo. Para copias de seguridad y espejos esto ahorra tiempo y tráfico por varios órdenes de magnitud.
Cómo funciona la transferencia delta
El lado de destino divide su copia del archivo en bloques y envía sumas de verificación de esos bloques. El lado de origen busca bloques coincidentes en la nueva versión del archivo y transmite sólo los datos que no están en el destino, más instrucciones sobre cómo reconstruir el archivo a partir de los bloques antiguos. Para archivos que no existen en el destino, rsync los transmite por completo. Por defecto los archivos modificados se determinan por tamaño y tiempo de modificación; la opción -c fuerza la comparación por sumas de verificación, lo que es más lento pero más fiable.
Opciones principales
rsync -a --delete --partial --dry-run -v /srv/www/ backup@192.0.2.20:/backup/www/-a(archive) — copia recursiva conservando permisos, propietarios, tiempos de modificación y enlaces simbólicos;--delete— eliminar en el destino los archivos que ya no están en el origen (hace la copia un espejo exacto);-z— comprimir los datos durante la transferencia (útil en enlaces lentos, inútil para archivos ya comprimidos como archivos .zip o vídeo);--partial— no borrar el archivo parcialmente transferido en caso de interrupción, para poder reanudar desde donde se quedó;--dry-run(-n) — mostrar lo que se haría sin cambiar nada;-v— salida detallada.
Detalle importante: la barra inclinada al final de la ruta de origen. /srv/www/ copia el contenido del directorio, mientras que /srv/www copia el propio directorio dentro del destino. Un error de un solo carácter junto con --delete puede borrar los archivos equivocados, por lo que siempre ejecute el nuevo comando primero con --dry-run.
A través de SSH
Si en la ruta se indica un servidor remoto (user@host:/path), rsync se ejecuta en él a través de SSH: los datos se cifran y para el acceso se usan las habituales claves SSH. Para especificar puerto o clave, use -e:
rsync -a -e "ssh -p 2222 -i ~/.ssh/backup_key" /srv/data/ backup@192.0.2.20:/backup/data/Para copias automáticas, cree en el servidor de destino un usuario separado con acceso sólo al directorio de copias y con una clave independiente.
Copias de seguridad con historial: –link-dest
Un espejo simple con --delete no protege contra errores: un archivo borrado o dañado en el origen desaparecerá también de la copia en minutos. La opción --link-dest permite almacenar instantáneas diarias casi sin coste adicional: los archivos no modificados en la nueva instantánea se convierten en enlaces duros a los archivos de la instantánea anterior.
today=$(date +%F)
rsync -a --delete --link-dest=/backup/latest /srv/data/ /backup/$today/
ln -sfn /backup/$today /backup/latestCada directorio /backup/AAAA-MM-DD parece una copia completa, pero sólo ocupan espacio los archivos modificados. Las instantáneas antiguas se eliminan con un rm -rf normal, sin afectar a las demás.
Demonio rsync y el puerto 873
Además de funcionar vía SSH, rsync puede ejecutarse como un servicio independiente (rsync --daemon), escuchando el puerto TCP 873. Este modo lo usan los espejos de distribuciones para distribuir paquetes. El protocolo del demonio no cifra los datos, y el propio demonio es un objetivo atractivo para ataques. No hace falta abrir el puerto 873 en Internet para copias de seguridad: use SSH o limite el acceso al demonio a la red interna y al cortafuegos.
Vulnerabilidades y actualizaciones
En enero de 2025 se lanzó rsync 3.4.0, que corrigió seis vulnerabilidades: desbordamiento de búfer al procesar sumas de verificación (CVE-2024-12084), filtración de contenido de la pila (CVE-2024-12085), posibilidad de que el servidor lea archivos arbitrarios del cliente (CVE-2024-12086), escritura de archivos fuera del directorio de destino mediante enlaces simbólicos (CVE-2024-12087), evasión de --safe-links (CVE-2024-12088) y condición de carrera al procesar enlaces simbólicos (CVE-2024-12747). Algunas de ellas permitían ejecución de código en el servidor con el demonio en ejecución. A septiembre de 2026 la versión actual es 3.5.1 (21 de septiembre de 2026). Compruebe la versión con rsync --version y actualice el paquete si es anterior a 3.4.0.
Errores típicos
- Barra final en la ruta — se copia algo distinto a lo esperado; con
--deleteesto puede provocar pérdida de datos. - Espejo en lugar de copia de seguridad —
--deletesin historial de instantáneas traslada errores y borrados a la copia. - Copia que nadie ha verificado — restaure periódicamente algunos archivos y compruebe su contenido.
- Demonio rsync expuesto — puerto 873 en Internet sin restricciones de acceso.
- Permisos y propietarios — al copiar sin root los propietarios de los archivos se pierden en el lado de destino; para una copia completa del sistema ejecute rsync con privilegios de root en ambos extremos.
// Tarea parecida
Si estas resolviendo algo parecido
Este articulo pertenece a uno de los temas principales de trabajo. Puedes seguir leyendo sobre el tema, ir a la pagina principal para entender a que me dedico o abrir directamente los servicios.
Tema del articulo
Servidores e infraestructura
VPS, Linux, stack web, migraciones, hosting, bases de datos y operacion base.
Tareas frecuentes de esta tema
- Migrar un sitio o servicio a un nuevo servidor
- Configurar Linux, Nginx, base de datos y copias de seguridad
- Entender por que el sistema funciona de forma inestable
// Siguiente paso
Si necesitas ayuda con este tema y no solo otro articulo, es mejor ir directo a la pagina del servicio. La pagina principal y la seleccion de materiales quedan como rutas secundarias.
Abrir servicios// Contact
¿Necesitas ayuda?
Escríbeme y te ayudaré a resolver el problema
Respondo en un día laborable (03:00-13:00 GMT)
Или оставьте заявку здесь:
// Related