Idiomas: English · Nederlands · Deutsch · Español · Français · Italiano · Português · Papiamentu · Frysk

Índice / Artículos / Cómo usar rsync para hacer copias de seguridad

Cómo usar rsync para hacer copias de seguridad

Una potente herramienta de transferencia de archivos, explicada

Publicado
Actualizado
(creado )
Escrito por
Willem L. Middelkoop
Temas
Libertad · SSH · Windows · datos · tutorial · linux · redes · servidor
Versión humana de este artículo
https://willem.com/es/2020-10-30_como-usar-rsync-para-hacer-copias-de-seguridad/
English
How to use rsync to make backups
Nederlands
Hoe rsync te gebruiken voor backups
Deutsch
Wie man rsync für Backups verwendet
Français
Utiliser rsync pour faire des sauvegardes
Italiano
Come usare rsync per fare i backup
Português
Como usar o rsync para fazer cópias de segurança
Papiamentu
Kon usa rsync pa hasi backup
Frysk
Hoe rsync te brûken foar backups
Idiomas
Traducido del original en inglés por un modelo de lenguaje en dos pasadas (traducción y corrección) con un glosario y un corrector ortográfico; aún no revisado por un hablante nativo.

Resumen

Es muy importante hacer copias de seguridad de tus datos, ¡porque nunca sabes cuándo llegará el desastre! Una herramienta potente y multiplataforma que te ayuda a conseguirlo es 'rsync'. En este artículo te explico por qué rsync es útil y cómo puedes usarlo para montar tus propias copias de seguridad.

Texto completo

Rsync

Desde que se creó en 1996 (por Andrew Tridgell y Paul Mackerras), rsync se ha convertido en una utilidad estándar que viene en las distribuciones populares de GNU/Linux, en Apple macOS, FreeBSD, NetBSD, OpenBSD y (con Cygwin o WSL) en Windows.

Características principales

Rsync se usa sobre todo para sincronizar archivos y directorios entre dos ordenadores. Puede usar SSH para conectarse a otro ordenador y transferir archivos. Además de ordenadores remotos, puedes usar rsync para sincronizar con discos duros externos y con unidades de almacenamiento en red (NAS). Rsync es popular porque:

  • Tiene licencia GNU General Public License, lo que lo convierte en software libre: libre tanto en el sentido de "libertad de expresión" como en el de "cerveza gratis"
  • El algoritmo de rsync es un tipo de delta encoding, es decir, minimiza el tráfico de datos y de red porque solo copia las partes de los archivos que han cambiado. Además, los datos se pueden comprimir para optimizar aún más el tráfico de la transferencia.
  • Puede reanudar las transferencias interrumpidas con una verificación por suma de comprobación. Gracias a ella, rsync detecta errores al copiar un archivo de un sitio a otro. Si dos archivos se diferencian en un solo bit, sus sumas de comprobación serán distintas. Es una forma eficiente de comprobar que cada byte ha llegado bien a su destino.

Instalar rsync

Si usas GNU/Linux, *BSD o Apple macOS, lo más probable es que ya tengas rsync instalado. Si usas Windows, puedes echar un vistazo al Subsistema de Windows para Linux o WSL para tener acceso a todas las herramientas estándar de GNU/Linux. Como alternativa a WSL, puedes usar Cygwin para instalar en Windows la gran colección de herramientas GNU y de código abierto.

Uso típico de rsync

rsync se usa desde la línea de comandos, es decir, la terminal. Ejecutas el comando 'rsync' seguido de opciones (opcionales), una ruta de origen y una ruta de destino.

Un comando rsync típico, con las opciones -arvz, un Mi-Directorio-Origen y un Mi-Directorio-Remoto en un servidor
Un comando rsync típico, con las opciones -arvz, un Mi-Directorio-Origen y un Mi-Directorio-Remoto en un servidor

Con las opciones -arvz le dices a rsync que active:

  • a: modo "archivo" (archive), que conserva los permisos y las fechas de creación y de última modificación
  • r: modo "recursivo", que permite a rsync sincronizar de forma recursiva las subcarpetas de los directorios de origen y de destino
  • v: "verbose" muestra más información en la consola, para que puedas seguir el progreso línea a línea
  • z: "compress" comprime los datos a medida que se envían a la máquina de destino, lo que reduce la cantidad de datos transmitidos y resulta útil en conexiones lentas o con límite de datos
  • --delete: hace que se borren en el lado remoto los archivos que se borran del directorio de origen. ¡Ten cuidado con esta opción!

Hay muchas otras opciones que te permiten adaptar el comportamiento de rsync a tus necesidades. Consulta la página del manual de rsync para ver la lista completa.

Cómo usar rsync para hacer copias de seguridad de archivos

En el ejemplo siguiente uso rsync para copiar un directorio ("Sample-Files") del escritorio de mi Windows 10 a un servidor remoto. Uso WSL en Windows para tener un entorno Debian_GNU/Linux funcionando en mi Windows Terminal.

Usando rsync en Windows 10 con WSL
Usando rsync en Windows 10 con WSL

Te explico el comando que uso:

  • rsync es el nombre del programa que utilizo
  • -arvz son las opciones que configuran rsync para hacer una copia archivada, con subdirectorios y con los datos transferidos comprimidos
  • /mnt/c/Users/mail/Desktop/Sample-files/ es la ruta del directorio de origen tal como se ve en la estructura de directorios de WSL. Apunta al escritorio de mi Windows (que está en la unidad C:)
  • willem @ store.willem.com:./Backup es el destino, que debes leer como "usuario willem en el servidor 'store.willem.com'" y, "en ese servidor", la carpeta "Backup" dentro del directorio personal "./" del "usuario willem".

Si ejecutas este comando por primera vez, se muestra la huella criptográfica del servidor remoto. Sirve para asegurarte de que hablas con tu servidor. Así nadie puede hacerse pasar por tu servidor sin que lo notes (porque la huella es única para tu servidor). Si rsync detecta un cambio en esa huella, se negará a transferir archivos. ¡Es fundamental, porque copiar tus copias de seguridad a un destino remoto cualquiera sería un riesgo de fuga de datos!

Si te conectas por SSH sin autenticación por clave, te pedirá la contraseña. Está bien si vas a hacer la transferencia a mano, pero si quieres automatizarla, te conviene configurar la autenticación por clave (con el práctico comando "ssh-copy-id"). Tu ordenador podrá entonces iniciar sesión de forma segura en la máquina remota sin que tengas que escribir una contraseña.

Usando rsync para copiar archivos del escritorio de mi Windows 10 a un servidor Debian GNU/Linux por SSH (con WSL)
Usando rsync para copiar archivos del escritorio de mi Windows 10 a un servidor Debian GNU/Linux por SSH (con WSL)

Si rsync consigue conectarse, pasa a determinar qué archivos hay que transferir. Si has activado la opción "-v", verás el progreso línea a línea. Cuando termina la transferencia, rsync se cierra con un resumen.

Transferencias incrementales

El truco estrella de rsync es que admite transferencias incrementales de serie. Si tienes algunos archivos nuevos y vuelves a ejecutar el mismo comando, solo transferirá los archivos que lo necesitan.

Tras añadir la foto de la Vía Láctea a mis archivos de ejemplo, vuelvo a ejecutar rsync para que transfiera de forma incremental, copiando solo el archivo nuevo
Tras añadir la foto de la Vía Láctea a mis archivos de ejemplo, vuelvo a ejecutar rsync para que transfiera de forma incremental, copiando solo el archivo nuevo

En la captura puedes ver que rsync detectó el archivo nuevo por sí solo y transfirió únicamente ese archivo al servidor remoto. Ahorras ancho de banda, tiempo y capacidad de procesamiento. Funciona tanto con archivos nuevos como con archivos modificados.

Opcionalmente puedes usar la opción "--delete" para trasladar al directorio de destino los borrados locales y obtener un espejo perfecto de tu estructura de archivos local. Para copias de seguridad, quizá te convenga prescindir de ella (podrías borrar archivos sin querer).

Automatizar transferencias y copias de seguridad

Como rsync es "solo un comando de terminal", puedes usarlo fácilmente dentro de tus propios scripts. Piensa en un script como una colección de comandos rsync que definen un conjunto de enlaces entre "origen" y "destino", es decir, entre tus archivos y sus ubicaciones de copia.

Puedes programar tu script para que se ejecute automáticamente un día de la semana y a una hora concretos. En GNU/Linux, *BSD y macOS puedes usar cron. En Windows puedes usar la aplicación "Programador de tareas".

Conclusión

Con rsync puedes transferir archivos de tu ordenador a otro sistema de forma eficiente, segura e incremental. Puede ser una pieza clave de tu plan de copias de seguridad.

Es libre y está disponible casi en todas partes. Su rendimiento y su fiabilidad están más que demostrados. ¡No hay excusa para no montar bien tus copias de seguridad!

Formatos legibles por máquinas de esta página