Comando rsync en Linux | Sincroniza archivos y directorios

comando-rsync
comando-rsync

rsync sincroniza archivos y directorios entre rutas locales o equipos remotos. Compara el origen con el destino y transfiere lo que hace falta actualizar, por lo que resulta útil para copias repetidas, despliegues y transferencias por SSH. No crea por sí solo un historial de versiones: si se borra algo del origen, la copia puede reflejar ese cambio.

La clave para usar el comando rsync con seguridad es entender el orden de origen y destino, el significado de la barra final y el efecto de opciones como –delete. Primero simula la operación y revisa el resultado; después ejecuta la copia real.

👉 Y recuerda, si quieres aprender más de Linux, visita el curso de Linux gratis.

🐳 Si quieres aprender más de Docker, visita el curso de Docker gratis.

Sintaxis básica del comando rsync

La forma general indica primero una o varias rutas de origen y, al final, una ruta de destino. Las opciones cambian qué atributos conserva, qué muestra y cómo trata las diferencias:

rsync [OPCIONES] ORIGEN... DESTINO

Explicación de la sintaxis

ORIGEN es el archivo o directorio que quieres copiar. DESTINO es la ruta donde quedará. Ambos pueden ser locales o remotos; una ruta remota suele escribirse como usuario@servidor:/ruta y requiere que SSH permita el acceso.

La barra final del directorio de origen cambia el nivel que se copia. Con proyecto/, rsync copia el contenido de esa carpeta dentro del destino. Con proyecto, copia la carpeta como un directorio llamado proyecto. Comprueba también si el destino ya existe y si contiene datos que debas conservar.

OpciónFunciónQué tener en cuenta
-aModo archivo: recorre directorios y conserva atributos habituales.Incluye recursividad, enlaces simbólicos, permisos, fechas, propietario y grupo cuando los permisos lo permiten. No incluye ACL, atributos extendidos ni enlaces duros.
-vMuestra qué está haciendo la transferencia.Útil para entender qué archivos se procesan.
-hMuestra tamaños en formato legible.Se combina con otras opciones, por ejemplo -avh.
-n o –dry-runSimula la operación sin escribir ni borrar archivos.Revisa la lista antes de una sincronización importante.
-zComprime los datos mientras viajan.Puede ayudar en enlaces lentos; no siempre acelera archivos ya comprimidos o redes rápidas.
-PMuestra progreso y conserva archivos parcialmente transferidos.Equivale a combinar progreso y transferencia parcial.
–deleteElimina en el destino los archivos que ya no están en el origen.Puede borrar datos del destino. Prueba primero con –dry-run.
-e ‘ssh -p PUERTO’Selecciona SSH como transporte y especifica un puerto.El servidor remoto necesita tener rsync instalado además de aceptar SSH.

Copiar archivos y directorios en el mismo equipo

Para sincronizar una carpeta local con otra, usa rutas completas o relativas. Este ejemplo copia el contenido de proyecto en una carpeta de respaldo y muestra los cambios:

rsync -avh ./proyecto/ ./backup/proyecto/

-a conserva atributos habituales, -v muestra actividad y -h presenta tamaños legibles. La primera ejecución puede copiar muchos datos; las siguientes normalmente actualizan solo los archivos que rsync considera distintos.

Transferir archivos por SSH

Para enviar una carpeta al servidor, coloca la ruta local antes de la remota. Para descargarla, invierte el orden. El servidor debe permitir SSH y disponer de rsync en la ruta de ejecución de esa cuenta:

rsync -avh ./proyecto/ [email protected]:/srv/copias/proyecto/
rsync -avh [email protected]:/srv/datos/ ./datos/

Sustituye usuario, servidor y rutas por valores reales. Si SSH usa un puerto distinto del habitual, indícalo mediante -e:

rsync -avh -e 'ssh -p 2222' ./proyecto/ [email protected]:/srv/copias/proyecto/

No des por sentada la ubicación de los archivos: confirma la ruta remota y los permisos de lectura o escritura de la cuenta antes de transferir.

Simular y revisar antes de sincronizar

La opción –dry-run permite ver lo que rsync intentaría hacer sin modificar el destino. Añade –itemize-changes para mostrar los cambios de forma detallada:

rsync -avhn --itemize-changes ./proyecto/ ./backup/proyecto/

Si la salida coincide con lo que esperas, repite la orden quitando -n. La simulación ayuda a detectar una ruta invertida, un directorio mal escrito o una cantidad inesperada de archivos.

Usar –delete para mantener un espejo

Al añadir –delete, rsync elimina del destino los elementos que no existen en el origen. Es apropiado cuando quieres que ambos árboles queden alineados, pero puede eliminar archivos válidos si te equivocas de ruta. No lo uses como sustituto de un backup con versiones.

rsync -avhn --delete ./public/ [email protected]:/srv/web/public/

Revisa con cuidado la salida simulada. Solo si el origen y el destino son los correctos y aceptas las eliminaciones, ejecuta la misma orden sin -n:

rsync -avh --delete ./public/ [email protected]:/srv/web/public/

Errores comunes al usar rsync

  • rsync: command not found en el servidor: instala rsync en el equipo remoto o configura la ruta correcta del ejecutable remoto.
  • Permission denied: revisa el usuario SSH y los permisos de lectura en el origen y escritura en el destino. Ejecutar rsync con sudo local no concede permisos de administrador en el servidor.
  • Los archivos quedan dentro de una carpeta extra: comprueba si escribiste el nombre del directorio de origen con o sin barra final y revisa la ruta de destino.
  • La simulación muestra demasiados borrados: no ejecutes la orden real. Verifica origen, destino y la opción –delete; una ruta invertida puede poner en riesgo los datos.
  • La copia no conserva ACL o atributos extendidos: el modo -a no los incluye. Cuando el sistema y los permisos lo permitan, consulta las opciones -A y -X del manual.
  • La conexión se cierra inesperadamente: comprueba conectividad SSH, mensajes de inicio del shell remoto y compatibilidad entre las versiones instaladas.

Comandos relacionados

Documentación oficial

Consulta el manual oficial de rsync para ver todas las opciones, restricciones y detalles del protocolo.

Vídeo: usar el comando rsync

Para complementar esta guía, hemos preparado un vídeo que muestra cómo usar el comando rsync en Linux. De este modo, podrás ver de forma práctica algunos de los ejemplos explicados en el artículo:

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *