Oct. 30, 2020

Cómo usar rsync para hacer copias de seguridad

Explicando una potente herramienta de transferencia de archivos

Es muy importante hacer copias de seguridad de tus datos, ¡nunca se sabe cuándo ocurrirá un desastre! Una herramienta potente y multiplataforma que te ayudará a lograrlo es 'rsync'. En esta publicación, explicaré por qué rsync es útil y cómo puedes usarla para configurar tus propias copias de seguridad.

Rsync

Desde su creación en 1996 (por Andrew Tridgell y Paul Mackerras), rsync se ha convertido en una utilidad estándar disponible en distribuciones populares de GNU/Linux, Apple macOS, FreeBSD, NetBSD, OpenBSD y (a través de Cygwin o WSL) en Windows.

Características principales

Rsync se usa típicamente para sincronizar archivos y directorios entre dos computadoras diferentes. Puede usar SSH para conectarse a otra computadora y transferir archivos. Además de computadoras remotas, puede usar rsync para sincronizar con discos duros externos y unidades de almacenamiento conectadas a la red (NAS). Rsync es popular porque:

Instalación de rsync

Si está en GNU/Linux, *BSD o Apple macOS, probablemente ya tenga rsync instalado. Si está en Windows, puede mirar el Subsistema de Windows para Linux o WSL para obtener acceso a todas las herramientas estándar de GNU/Linux. Como alternativa a WSL, puede usar Cygwin para instalar la gran colección de herramientas GNU y de código abierto en Windows.

Uso típico de rsync

El uso de rsync se realiza desde la línea de comandos o terminal. Ejecuta el comando 'rsync' seguido de indicadores (opcionales), una ruta de origen y una ruta de destino.

Comando rsync típico, mostrando las banderas -arvz, un Mi-Directorio-Fuente y Mi-Directorio-Remoto en un servidor
Comando rsync típico, mostrando las banderas -arvz, un Mi-Directorio-Fuente y Mi-Directorio-Remoto en un servidor

Usando los indicadores -arvz configura rsync para:

Hay muchos otros indicadores y opciones que le permiten personalizar el comportamiento de rsync según sus necesidades. Debe consultar la página de manual para rsync para obtener una lista completa de todas las opciones.

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

En el siguiente ejemplo, usaré rsync para copiar un directorio ("Sample-Files") en mi escritorio de Windows 10 a un servidor remoto. Utilizo WSL en Windows para tener un entorno Debian_GNU/Linux en funcionamiento en mi Terminal de Windows.

Usando rsync en Windows 10 usando WSL
Usando rsync en Windows 10 usando WSL

Déjame explicar el comando que uso:

Si ejecuta este comando por primera vez, se muestra la huella digital criptográfica del servidor remoto. Esto se utiliza para garantizar que esté hablando con su servidor. Esto evita que los piratas informáticos se hagan pasar por su servidor sin que usted se dé cuenta (ya que la huella digital es única para su servidor. Si rsync detecta un cambio en esta huella digital, se negará a transferir archivos. ¡Esto es fundamental ya que copiar sus copias de seguridad a un destino remoto aleatorio sería un riesgo potencial de fugas de datos!

Se le solicita su contraseña si se está conectando a través de SSH sin autenticación basada en claves. Esto está bien si tiene la intención de ejecutar su transferencia de archivos manualmente, pero si tiene la intención de automatizar las transferencias, es posible que desee configurar la autenticación basada en claves (usando el práctico comando "ssh-copy-id"). Su computadora podrá entonces iniciar sesión de forma segura en la máquina remota sin necesidad de introducir una contraseña manualmente.

Usando rsync para copiar archivos desde mi escritorio de Windows 10 a un servidor Debian GNU/Linux sobre SSH (usando WSL)
Usando rsync para copiar archivos desde mi escritorio de Windows 10 a un servidor Debian GNU/Linux sobre SSH (usando WSL)

Si rsync puede conectarse correctamente, continuará determinando qué archivos deben transferirse. Si ha configurado el indicador "-v", verá el progreso línea por línea. Una vez completada la transferencia, rsync saldrá con un resumen.

Transferencias incrementales

El truco de fiesta de Rsync es que admite completamente las transferencias de datos incrementales de forma inmediata. Si tiene algunos archivos nuevos y luego ejecuta el mismo comando rsync nuevamente, solo transferirá los archivos que necesitan transferencia.

Después de agregar la foto de la Vía Láctea a mis archivos de ejemplo, ejecuto rsync nuevamente para que transfiera mis archivos de forma incremental, copiando solo el archivo nuevo
Después de agregar la foto de la Vía Láctea a mis archivos de ejemplo, ejecuto rsync nuevamente para que transfiera mis archivos de forma incremental, copiando solo el archivo nuevo

Puede ver en la captura de pantalla que rsync detectó automáticamente el nuevo archivo. Solo transfirió ese archivo al servidor remoto. Ahorro de ancho de banda, tiempo y potencia de procesamiento. Funciona con archivos nuevos y archivos que se han actualizado.

Opcionalmente, puede usar el indicador "--delete" para propagar las eliminaciones locales al directorio de destino, creando una imagen espejo perfecta de la estructura de archivos local. Para fines de copia de seguridad, puede considerar omitir esto (ya que puede eliminar archivos sin querer).

Automatización de transferencias y copias de seguridad

Debido a que rsync es "solo un comando de terminal", puede usarlo fácilmente dentro de sus propios scripts. Piense en un script como una colección de comandos rsync que comprenden un conjunto de enlaces de "origen" y "destino" entre sus archivos y sus respectivas ubicaciones de copia de seguridad.

Puede programar la ejecución automática de su script en un día y hora determinados de la semana. En GNU/Linux, *BSD y macOS puede usar cron para hacer esto. En Windows, puede usar la aplicación "Programador de tareas".

Conclusión

Con rsync, puede transferir archivos de su computadora a otro sistema de manera eficiente, segura e incremental. Puede ser una herramienta crucial en su programa de copias de seguridad.

Es gratuito y está ampliamente disponible. Su rendimiento y confiabilidad están ampliamente establecidos. ¡Realmente no hay excusa para que no configure sus copias de seguridad correctamente!