Copias de seguridad con rsync

Si no haces copias de seguridad del servidor con regularidad, resultará muy difícil recuperar datos perdidos. Por ello, las copias de seguridad deben jugar siempre un papel determinante en tu planificación relativa a los servidores. Entre las numerosas soluciones de copia de seguridad disponibles queremos destacar la herramienta o el protocolo de sincronización rsync.

¿Qué es rsync y para qué se usa?

Detrás de este término se encuentra un protocolo de red para la sincronización de archivos que data del año 1996 y que ha sido desarrollado, entre otros, por Andrew Tridgell, el principal responsable del proyecto SAMBA. Al margen del protocolo, existe la herramienta homónima, que es la que posibilita la comunicación con el protocolo. La aplicación, de licencia GPL, es gratuita y transmite datos de un directorio origen a un directorio de destino deseado, ya sea de forma local o a través de una red pública. En este proceso, se comparan el tamaño y la fecha de creación de todos los archivos en la carpeta de origen y la carpeta de destino, de manera que en cada sincronización solo se copian aquellos archivos que se hayan visto modificados. Por este motivo, el proceso de rsync backup se considera una variante de copia de seguridad incremental, que tiene las ventajas de que se ejecuta rápido y requiere poco espacio de almacenamiento.

Nota

rsync está disponible para todos los sistemas operativos convencionales de UNIX, como OS/2, Linux o macOS. Sobre la base del contenedor API cygwin también se puede usar en Microsoft Windows.

Al margen del almacenamiento de datos y la creación de los denominados servidores espejo (recreaciones completas de servidores), los escenarios de uso más frecuentes de rsync también incluyen la sincronización de datos en empresas con distintas sedes y una conexión de datos débil. No obstante, hoy en día son, sobre todo, las modernas tecnologías en la nube las encargadas de esta última función, también porque una conexión de datos débil es cada vez menos frecuente.

Vista general de las opciones rsync más importantes

Las copias de seguridad rsync destacan por su gran eficiencia. El enfoque incremental permite una carga de red mínima, una gran ventaja a la hora de manejar archivos de gran tamaño, sin importar si las modificaciones que sufrieron son importantes o pequeñas. Como herramienta de línea de comandos, rsync suele controlarse a través de la terminal de comandos si estás usando un dispositivo con Windows. Los comandos siempre presentan la siguiente sintaxis:

rsync -(-)opciones ruta de origen ruta de destino

Como ruta de origen y de destino hay que indicar el directorio de salida y el directorio en el que se desee que rsync almacene la copia de seguridad. Mediante las opciones, que se abrevian con la primera letra o se escriben de forma íntegra, puedes definir tus ajustes individuales para tus rsync backups. La siguiente tabla resume los parámetros más importantes que se pueden combinar libremente entre sí:

Opción

Función

-r, --recursive

rsync backup tendrá en cuenta todos los subdirectorios incluidos

-u, --update

Instrucción para no tener en cuenta a los archivos que son más recientes en el directorio de destino que en el directorio de origen

-c, --checksum

Distinción entre archivos de origen y de destino mediante sumas de comprobación

-l, --links

Los accesos directos simbólicos se copian como tales (y no como archivos)

-p, --perms

Se conservan los permisos de los archivos

-g, --group

Se conservan los permisos de grupo de los archivos

-t, --times

Se conservan las marcas temporales (última modificación) de los archivos

-o, --owner

Se conserva el propietario de los archivos (solo si es administrador)

-D, --devices

Se conservan los datos del dispositivo

-z, --compress

Compresión automática de los datos transmitidos

--compress-level=NUM

Determinación del grado de compresión; se permite un valor (“NUM”) entre 0 (no hay compresión) y 9 (máxima compresión)

-v, --verbose

Información detallada durante el proceso de copia de seguridad

-q, --quiet

Se oculta toda información relativa al proceso de copia de seguridad (a excepción de los mensajes de error)

-a, --archive

Modo de archivo que se usa como modo por defecto y que es idéntico a la combinación de opciones -rlptgoD

-n, --dry-run

Ejecución de prueba en la que no se realizan modificaciones reales

-h, --help

Menú de ayuda (solo se puede usar sin indicación de los directorios de origen y de destino o de otros argumentos)

--bwlimit=KBPS

Limitación del ancho de banda (kilobytes por segundo),

p. ej., --bwlimit=30 (límite de 30 kbit/s)

--exclude=MUSTER

Exclusión de un patrón de la sincronización,

p. ej., --exclude carpeta de ejemplo (la carpeta “Carpeta de ejemplo” no se sincronizará.)

--delete

Eliminación de todos los archivos que se encuentran en el directorio de destino pero que no están en el directorio de origen

--progress

Indicación de la duración del rsync backup y de la velocidad de transmisión

--list-only

Enumeración de los archivos en lugar de hacer una copia de seguridad

--stats

Informe detallado sobre los datos transferidos (cantidad, tamaño)

--max-size=SIZE

Determinación de un tamaño de archivo máximo,

p. ej., --max-size=10MB (solo se transferirán archivos con un tamaño de hasta 10 MB.)

--ignore-errors

Evita la cancelación del proceso de copia de seguridad en caso de error

Configuración de rsync backups en servidores Linux

Para poder usar rsync en sistemas operativos Linux, debes instalar el protocolo en el paquete homónimo y crear tus copias de seguridad mediante comandos de terminal. De forma alternativa, puedes usar aplicaciones como Back In Time, rsnapshot (para copias automáticas regulares) o Unison, que permiten controlar el proceso de la copia de seguridad mediante una interfaz gráfica. A continuación, te explicamos los pasos más importantes a la hora de configurar un proceso de copia de seguridad con rsync mediante un ejemplo en Ubuntu.

Normalmente, rsync ya viene instalado por defecto en Ubuntu. Si no fuese el caso, utiliza este comando para instalarlo:

sudo apt-get install rsync

Una vez instalado rsync, usa los comandos de terminal deseados para determinar los directorios de origen y de destino, así como las opciones de copia de seguridad. El modo estándar (“Archive”) se ejecuta de la siguiente manera:

rsync -a directorio de origen directorio de destino
Consejo

Recomendamos que uses la ejecución de prueba (-n) para comprobar que los parámetros y directorios indicados son correctos ‒en el peor de los casos, las indicaciones erróneas pueden provocar una pérdida de datos. A veces no se copian todos los archivos durante el proceso, a menudo esto se debe a que faltan derechos de acceso necesarios. En este caso, intenta ejecutar el comando como administrador, anteponiendo el parámetro “sudo” al comando.

5 escenarios frecuentes de rsync backup

Si dominas los comandos básicos, en rsync encontrarás una herramienta muy competente para copiar archivos y crear copias de seguridad. En este contexto, puedes probar configuraciones individuales de comandos o recurrir a las combinaciones asentadas de los parámetros rsync disponibles. Los siguientes escenarios de rsync backup gozan de especial popularidad:

Copia de seguridad estándar con el modo de archivo

El modo de archivo, que copia por defecto todos los archivos de un directorio de origen a un directorio de destino (incluidos todos los subdirectorios) y que mantiene todos los derechos, marcas de tiempo y datos de dispositivo, suele ser la solución más sencilla y adecuada gracias a la combinación de distintas opciones en un solo parámetro. Si, además, combinas el modo con el parámetro -v, recibirás información detallada sobre el estado durante el proceso de copia de seguridad.

rsync -av directorio de origen directorio de destino

Copias perfectas del directorio de origen

El programa rsync no solo sirve para transmitir archivos de A a B, sino que también permite hacer copias perfectas de carpetas y directorios completos. Después del archivo estándar, se eliminan los archivos que estaban en la carpeta de destino antes de ejecutar rsync, pero que no están en la carpeta de origen.

rsync -av --delete directorio de origen directorio de destino

Copia de seguridad excluyendo archivos de un formato determinado

Si deseas realizar una copia de seguridad en la que se excluyan archivos con un formato determinado, puedes hacerlo con --exclude. Este parámetro te permite definir un patrón individual de caracteres, que rsync usará como indicador para no tener en cuenta un archivo. En el siguiente código de ejemplo, se trata del formato de archivo de texto .txt:

rsync -av --exclude'*.txt' directorio de origen directorio de destino

Copia de seguridad de archivos con tamaño máximo o mínimo ajustado

Si no quieres usar un determinado patrón de caracteres, sino el tamaño de archivo, como criterio para ignorar determinados archivos en el proceso de rsync backup, debes emplear los parámetros --max-size o --min-size. Con el siguiente comando solo se copiarán aquellos archivos que tengan un tamaño mínimo de 10 MB y un tamaño máximo de 100 MB:

rsync -av --min-size=10MB --max-size=100MB directorio de origen directorio de destino

Copia de seguridad con conversión del formato de caracteres

Es posible que en el directorio de destino necesites los datos en otro formato de caracteres, por ejemplo, si deseas enviar datos de un servidor Mac a un servidor Linux. El dispositivo de Apple usa por defecto UTF8-MAC, que no está disponible en el sistema Linux y que generaría problemas con los caracteres especiales y las diéresis. Mediante la opción --iconv puedes adaptar la codificación de los caracteres fácilmente (en nuestro ejemplo, de UTF8-MAC a UTF8):

rsync -av --iconv=UTF8-MAC,UTF8 directorio de origen directorio de destino
Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede obtener más información, o bien conocer cómo cambiar la configuración de su navegador en nuestra. Política de Cookies.