Rsync (Remote Sync) nos permite mantener sincronizados nuestros ficheros en tantos equipos como queramos de una manera muy simple y eficaz. Es importante decir que
rsync no actúa como
nfs, por lo que los ficheros sincronizados estarán almacenados en cada uno de los equipos en los que estén presentes.
Este comando es muy útil cuando necesitamos tener el mismo fichero replicado en varios equipos y queremos ahorrarnos tiempo y modificarlo solo una vez, y para mantener una copia de seguridad remota.
Instalación
Sistemas basados en Red Hat:
yum install rsync -y
Sistemas basados en Debian:
apt-get install rsync -y
Opciones más comunes
- -v : verbose
- -a : modo archivo, permite copiar ficheros recursivamente y preserva los symlinks, permisos, propietario (usuario y grupo) y timestamps.
- -r : recursividad. No preserva timestamps ni permisos.
- -z : comprime los datos.
- -h : muestra los datos numéricos de una manera fácil de comprender.
1. Sincronización de un directorio
Pongamos como ejemplo que queremos sincronizar el directorio local /opt/data con el directorio remoto /home/sysfiend/data:
rsync -razvh /opt/data/ sysfiend@192.168.0.50:/home/sysfiend/data/
2. Sincronización sobre ssh
Rsync también nos permite realizar la sincronización utilizando ssh para que esta se realice de manera encriptada y segura. Para este ejemplo, sincronizamos el directorio local /opt/data con el directorio remoto /home/sysfiend/data utilizando la opción '-e':
rsync -razvhe ssh /opt/data/ sysfiend@192.168.0.50:/home/sysfiend/data/
3. Sincronización sobre ssh especificando el puerto
Como comentaba en el post
Seguridad básica de un servidor en Internet, es recomendable tener un puerto diferente al predeterminado para
ssh, así que si queremos utilizar
rsync, deberemos especificarle el puerto (por ejemplo, el 456):
rsync -razvh -e "ssh -p 456" /opt/data/ sysfiend@192.168.0.50:/home/sysfiend/data/
4. Mostrar el progreso
Si queremos ver el progreso mientras transferimos los datos, lo podemos hacer con la opción '--progress':
rsync -razvh --progress /opt/data/ sysfiend@192.168.0.50:/home/sysfiend/data/
5. Incluír y excluír ficheros
Utilizando la opción '--include', especificamos los ficheros que queremos incluír y con '--exclude' los que queremos excluír. Por ejemplo, si queremos incluír solo los ficheros que terminan en '.tar' y excluír el resto, utilizaríamos:
rsync -razvh --include '*.tar' --exclude '*' /opt/data/ sysfiend@192.168.0.50:/home/sysfiend/data/