miércoles, 5 de octubre de 2016

Rsync: 5 ejemplos prácticos de uso en Linux

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/

No hay comentarios:

Publicar un comentario