Rsync (Remote Sync, es decir “sincronización remota”) es una popular y poderosa herramienta utilizada para copiar y sincronizar archivos y directorios entre sistemas Linux/Unix remotos o locales. Con la ayuda de rsync, podemos fácilmente copiar/sincronizar datos entre directorios locales y remotos, a través de distintas unidades y redes, e incluso podemos respaldar archivos y hacer prácticamente cualquier cosa que involucre el copiado de datos. Hoy vamos a comentarles algunos usos prácticos que le podemos dar a rsync.
Primero que nada, ¿cuáles son las ventajas de usar rsync y no otras herramientas con los mismos propósitos? Pues posee varias:
-Es eficiente cuando se trata de copiar y/o sincronizar archivos en forma local o remota.
-Permite copiar permisos, grupos y propietarios.
-Es más rápido que otra conocida herramienta, scp, a la hora de hacer sincronizaciones, ya que necesita copiar archivos enteros solo la primera vez. A partir de la segunda, solo copiará los datos que hayan cambiado.
-Consume menos transferencia ya que comprime (y posteriormente descomprime en el destino) los datos.
-Permite copiar permisos, grupos y propietarios.
-Es más rápido que otra conocida herramienta, scp, a la hora de hacer sincronizaciones, ya que necesita copiar archivos enteros solo la primera vez. A partir de la segunda, solo copiará los datos que hayan cambiado.
-Consume menos transferencia ya que comprime (y posteriormente descomprime en el destino) los datos.
La sintaxis básica de rsync es la siguiente:
1
|
rsync opciones fuente destino
|
Las opciones utilidas más comunmente son:
-v: modo verboso.
-r: copia datos en forma recursiva pero no mantiene permisos ni propietarios.
-a: modo de archivo. Copia datos en forma recursiva y mantiene propietarios y permisos.
-z: comprime los datos al copiar.
-h: muestra números amigables para el usuario.
-r: copia datos en forma recursiva pero no mantiene permisos ni propietarios.
-a: modo de archivo. Copia datos en forma recursiva y mantiene propietarios y permisos.
-z: comprime los datos al copiar.
-h: muestra números amigables para el usuario.
Su instalación es muy sencilla:
1
2
|
yum install rsync (en sistemas basados en Red Hat)
apt-get install rsync (en sistemas basados en Debian)
|
Veamos algunos ejemplos de su uso a continuación:
1) Copiar archivo a un directorio local:
En este caso, copiaremos el archivo “test.tar” ubicado en la carpeta “/home” hacia la carpeta “/tmp/pruebas”
1
|
rsync -zvh /home/test.tar /tmp/pruebas/
|
2) Copiar un directorio local a otro:
1
|
rsync -avzh /home/directorio1/* /tmp/pruebas/
|
Este comando copiará todos los archivos dentro de la carpeta “/home/directorio1” hacia la carpeta “/tmp/pruebas”
3) Copia de un archivo a un directorio de un servidor remoto:
1
|
rsync -zvh /home/test.tar root@000.000.0.000:/root/
|
Con la sintaxis anterior estaremos copiando el archivo “/home/test.tar” al directorio “/root” del servidor identificado con la IP 000.000.0.000.
4) Copia de un directorio a un servidor remoto:
A continuación copiaremos el contenido del directorio “/tmp/pruebas” hacia el directorio “/root” del servidor 000.000.0.000:
1
|
rsync -avz /tmp/pruebas/* root@000.000.0.000:/root/
|
5) Opción –dry-run
Esta es una opción muy interesante y más que nada muy útil para quienes recién están comenzando a usar rsync. ¿Qué hace esta opción? Pues se trata de una especie de simulacro: básicamente, nos muestra en pantalla lo que copiaría rsync, pero sin copiarlo. Veamos un ejemplo:
Creamos un directorio de prueba:
1
|
[root@servidor:~]mkdir /root/temp2
|
Realizamos la copia de un archivo usando –dry-run:
1
2
3
4
|
[root@servidor:~]rsync --dry-run -zvh prueba.txt /root/temp2/
prueba.txt
sent 34 bytes received 15 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)
|
Verificamos el contenido del directorio:
1
2
3
4
|
[root@servidor:~]ls -lah /root/temp2/
total 8.0K
drwxr-xr-x 2 root root 4.0K Oct 11 17:58 .
dr-xr-x--- 9 root root 4.0K Oct 11 17:58 ..
|
Gracias a –dry-run hemos podido previsualizar lo que sucedería si ejecutamos el comando normalmente, cosa que haremos a continuación:
1
2
3
4
5
6
7
8
9
|
[root@servidor:~]rsync -zvh prueba.txt /root/temp2/
prueba.txt
sent 67 bytes received 31 bytes 196.00 bytes/sec
total size is 0 speedup is 0.00
[root@servidor:~]ls -lah /root/temp2/
total 8.0K
drwxr-xr-x 2 root root 4.0K Oct 11 18:01 .
dr-xr-x--- 9 root root 4.0K Oct 11 17:58 ..
-rw-r--r-- 1 root root 0 Oct 11 18:01 prueba.txt
|
Las posibilidades de rsync son muchísimas, esto que han visto no es más que el principio. La documentación de la herramienta y todo lo relacionado a ella pueden verlo en su página oficial.
Comentarios
Publicar un comentario