rsync resulta ideal para la transferencia periódica de grandes cantidades de datos que no varían mucho. Esto suele ser el caso en las copias de seguridad. Otra aplicación son los denominados staging server. Estos contienen el árbol original y completo de un servidor Web. Este árbol se copia periódicamente al servidor Web verdadero en la “DMZ”.
Existen dos modos de operación para rsync. Por
una parte, rsync sirve para archivar y copiar
archivos. Esto sólo requiere un shell remoto en el ordenador destino como
por ejemplo ssh. Por otra parte,
rsync puede actuar como
daemon y ofrecer directorios en la red.
El uso básico de rsync no requiere ninguna configuración especial. Por ejemplo, resulta muy sencillo replicar un directorio completo de un ordenador a otro. El siguiente comando sirve para crear una copia de seguridad del directorio personal de tux en el servidor de copias de seguridad sun:
rsync -baz -e ssh /home/tux/ tux@sun:backup
Para volver a copiar el directorio al ordenador local se utiliza el comando:
rsync -az -e ssh tux@sun:backup /home/tux/
Hasta este punto el uso de rsync casi no difiere de un programa de copia como scp.
Para poder utilizar todas sus prestaciones, rsync ha de utilizarse en modo “rsync”. Para ello se arranca el daemon
rsyncd en uno de los ordenadores. Este daemon se
configura con el archivo /etc/rsyncd.conf. Por ejemplo,
para dar acceso vía rsync al directorio
/srv/ftp, se puede utilizar el siguiente archivo de
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 = An Example
Inicie a continuación rsyncd con rcrsyncd start.
Para iniciar rsyncd automáticamente al arrancar
el ordenador, se puede activar este servicio en el editor de niveles de
ejecución de YaST o bien introducir el comando
insserv rsyncd.
Una alternativa es el inicio de rsyncd desde
xinetd, pero esto sólo se recomienda para servidores que no utilizan
rsyncd con mucha frecuencia.
El ejemplo también crea un archivo de registro con todas las conexiones. Dicho
archivo se encuentra en /var/log/rsyncd.log.
La transferencia desde un ordenador cliente puede comprobarse mediante:
rsync -avz sun::FTP
Este comando produce una lista de todos los archivos que se encuentran
dentro del directorio /srv/ftp en el servidor. Esta
consulta aparece también en el archivo de registro
/var/log/?syncd.log. Para iniciar la transferencia
hace falta indicar un directorio destino que puede ser “.”
si se trata del directorio actual, es decir:
rsync -avz sun::FTP .
Con su configuración predeterminada, rsync no borra
archivos durante la sincronización. Para lograr este efecto es preciso
utilizar la opción adicional --delete.
Usando la opción --update los archivos con fecha reciente
no son reemplazados por los archivos con fecha anterior. Los posibles
conflictos que aparezcan se han de resolver manualmente.
Las páginas del manual man rsync y
man rsyncd.conf informan sobre el uso
de rsync. Puede obtener documentación técnica sobre el funcionamiento de rsync
en /usr/share/doc/packages/rsync/tech_report.ps La página
Web del proyecto rsync contiene la información más actual rsync: http://rsync.samba.org.