27.6. Introducción a rsync

rsync resulta útil cuando es necesario transmitir grandes cantidades de datos regularmente sin realizar demasiados cambios. Este caso se da muy a menudo, por ejemplo, al crear copias de seguridad. Otra aplicación está relacionada con los servidores temporales. Se trata de servidores que almacenan árboles de directorios completos de servidores Web que se duplican regularmente en un servidor Web de una zona DMZ.

27.6.1. Configuración y funcionamiento

rsync puede funcionar de dos modos diferentes. Puede utilizarse para crear archivos de reserva o copiar datos. Para ello, sólo es necesario disponer de una shell remota, como ssh, en el sistema de destino. No obstante, rsync también puede utilizarse como daemon para proporcionar directorios a la red.

El modo básico de funcionamiento de rsync no requiere ninguna configuración especial. rsync permite la duplicación directa de directorios completos en otro sistema. A modo de ejemplo, el siguiente comando crea una copia de seguridad del directorio personal de tux en un servidor de copias de seguridad llamado sun:

 rsync -baz -e ssh /home/tux/ tux@sun:backup
 

El siguiente comando se utiliza para recuperar el directorio:

 rsync -az -e ssh tux@sun:backup /home/tux/
 

Hasta este punto, la gestión no se diferencia mucho de la de una herramienta de copia normal, como scp.

rsync debe utilizarse en el modo de “rsync” para que todas sus funciones estén totalmente disponibles. Para ello, es necesario iniciar el daemon rsyncd en uno de los sistemas. Configúrelo en el archivo /etc/rsyncd.conf. Por ejemplo, para que el directorio /srv/ftp esté disponible con rsync, utilice la siguiente configuración:

 
gid = nobody 
uid = nobody 
read only = true 
use chroot = no 
transfer logging = true 
log format = %h %o %f %l %b 
log file = /var/log/rsyncd.log

[FTP] 
        path = /srv/ftp 
        comment = Un ejemplo 

A continuación, inicie rsyncd mediante el comando rcrsyncd start. rsyncd también puede iniciarse automáticamente durante el proceso de arranque. Para ello, active este servicio en el editor de tiempo de ejecución proporcionado por YaST, o bien introduzca manualmente el comando insserv rsyncd. Como alternativa, xinetd también puede iniciar rsyncd. No obstante, esto sólo es recomendable para servidores que utilicen rsyncd con poca frecuencia.

El ejemplo también crea un archivo de registro que detalla todas las conexiones. Dicho archivo se almacena en /var/log/rsyncd.log.

A continuación podrá probar la transferencia desde un sistema cliente. Para ello, emplee el siguiente comando:

rsync -avz sun::FTP
 

Este comando proporciona una lista de todos los archivos que se encuentran en el directorio /srv/ftp del servidor. Esta solicitud también se incluye en el archivo de registro /var/log/rsyncd.log. Para iniciar una transferencia real, proporcione un directorio de destino. Utilice . para el directorio actual. Por ejemplo:

rsync -avz sun::FTP .
 

Por defecto, no se suprime ningún archivo al realizar la sincronización mediante rsync. Si es necesario forzar la supresión, deberá definir la opción adicional --delete. Para asegurarse de que no se suprime ningún archivo reciente en lugar de uno antiguo, puede utilizar la opción --update en lugar de la anterior. Deberá resolver manualmente cualquier conflicto que se produzca.

27.6.2. Información adicional

En las páginas Man man rsync y man rsyncd.conf encontrará información importante sobre rsync. En /usr/share/doc/packages/rsync/tech_report.ps encontrará un documento técnico de referencia sobre los principios del funcionamiento de rsync. Para conocer las noticias más recientes sobre rsync, visite la página Web del proyecto en la siguiente dirección: http://rsync.samba.org/.