LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.

rsync es el standar sync para la sincronización remota.

rsync se utiliza para realizar la operación de copia de seguridad en UNIX / Linux.

La utilidad rsync se utiliza para sincronizar los archivos y directorios de un lugar a otro de una manera eficaz. La ubicación de copia de seguridad podría estar en el servidor local o en un servidor remoto.


Características importantes de rsync

Velocidad: La primera vez, rsync reproduce todo el contenido entre la fuente y directorios de destino. La próxima vez, rsync sólo transferirá los bloques modificados o bytes en la ubicación de destino, lo que hace que la transferencia muy rápida.
Seguridad: rsync permite la encriptación de los datos mediante el protocolo SSH durante la transferencia.
Menos ancho de banda: rsync permite la compresión y descompresión de bloques de datos por bloques en el extremo emisor y receptor, respectivamente. Así que el ancho de banda utilizado por rsync será siempre menor en comparación con otros protocolos de transferencia de archivos.
Privilegios: No hay privilegios especiales son necesarios para instalar y ejecutar rsync

Sintaxis

 $ rsync opciones origen destino 


Origen y de destino podrían ser local o remoto. En caso de control remoto, especifique el nombre de usuario, nombre del servidor remoto y la ubicación.

Ejemplo 1. Sincronizar dos directorios en un servidor local

Para sincronizar dos directorios en un equipo local, utilice el siguiente comando rsync -zvr.

$ rsync -zvr /var/opt/installation/inventory/ /root/temp
building file list ... done
sva.xml
svB.xml
.
sent 26385 bytes  received 1098 bytes  54966.00 bytes/sec
total size is 44867  speedup is 1.63
$


En el ejemplo anterior rsync:

    -z permitir la compresión
    -v detallado
    -r indica recursiva 


Ahora vamos a ver la fecha y hora en uno de los archivos que se copian desde el origen al destino. Como se puede ver a continuación, rsync no preservó las marcas de tiempo durante la sincronización.

$ ls -l /var/opt/installation/inventory/sva.xml /root/temp/sva.xml
-r--r--r-- 1 bin  bin  949 Jun 18  2012 /var/opt/installation/inventory/sva.xml
-r--r--r-- 1 root bin  949 Sep  2  2012 /root/temp/sva.xml

Ejemplo 2. Preservar las marcas de tiempo durante la sincronización con rsync -a, la 
opción -a de rsync indica el modo de archivo. La opción -a hace lo siguiente,

    Modo recursivo
    Conserva los enlaces simbólicos
    Preserva los permisos
    Conserva la marca de tiempo
    Conserva propietario y el grupo 

Ahora, al ejecutar el mismo comando proporciona en el ejemplo 1 (pero con la opción rsync -a) como se muestra a continuación:

 $ rsync -azv /var/opt/installation/inventory/ /root/temp/
building file list ... done
./
sva.xml
svB.xml
.
sent 26499 bytes  received 1104 bytes  55206.00 bytes/sec
total size is 44867  speedup is 1.63
$


Como se puede ver a continuación, rsync conserva las marcas de tiempo durante la sincronización.

$ ls -l /var/opt/installation/inventory/sva.xml /root/temp/sva.xml
-r--r--r-- 1 root  bin  949 Jun 18  2012 /var/opt/installation/inventory/sva.xml
-r--r--r-- 1 root  bin  949 Jun 18  2012 /root/temp/sva.xmll

Ejemplo 3. Sincronizar sólo un archivo

Para copiar un solo archivo, especifique el nombre del archivo al comando rsync, como se muestra a continuación.

$ rsync -v /var/lib/rpm/Pubkeys /root/temp/
Pubkeys

sent 42 bytes  received 12380 bytes  3549.14 bytes/sec
total size is 12288  speedup is 0.99


Ejemplo 4. Sincronizar archivos de local a remoto

rsync le permite sincronizar los archivos / directorios entre el sistema local y remoto.

$ rsync -avz /root/temp/ Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/home/thegeekstuff/temp/
Password:
building file list ... done
./
rpm/
rpm/Basenames
rpm/Conflictname

sent 15810261 bytes  received 412 bytes  2432411.23 bytes/sec
total size is 45305958  speedup is 2.87


Mientras se hace la sincronización con el servidor remoto, debe especificar nombre de usuario y la dirección IP del servidor remoto. También debe especificar el directorio de destino en el servidor remoto. El formato es nombre_de_usuario@nombremaquina:/ruta/

Como se puede ver arriba, se pide la contraseña al hacer rsync desde el local al servidor remoto.

A veces uno no quiere introducir la contraseña al realizar la copia de seguridad de archivos desde el local al servidor remoto. Por ejemplo, si usted tiene un script de copia de seguridad, que copia archivos desde el local al servidor remoto a través de rsync, necesita la capacidad de rsync sin tener que introducir la contraseña.

Ejemplo 5. Sincronizar archivos de remoto a local

Cuando desee sincronizar archivos desde local a remoto, especifique la ruta de destino, como se muestra a continuación. 

$ rsync -avz Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/lib/rpm /root/temp
Password:
receiving file list ... done
rpm/
rpm/Basenames
.
sent 406 bytes  received 15810230 bytes  2432405.54 bytes/sec
total size is 45305958  speedup is 2.87

 
Ejemplo 6. Shell remoto para la sincronización

rsync le permite especificar el shell remoto que desea utilizar. Puede usar rsync ssh para permitir la conexión remota segura.

Usar rsync -e ssh para especificar qué shell remoto para utilizar. En este caso, utilizar rsync ssh.

$ rsync -avz -e ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/lib/rpm /root/temp
Password:
receiving file list ... done
rpm/
rpm/Basenames

sent 406 bytes  received 15810230 bytes  2432405.54 bytes/sec
total size is 45305958  speedup is 2.87


Ejemplo 7. No sobrescribir los archivos modificados en el destino

En una situación típica de sincronización, si se modifica un archivo en el destino, puede ser que no se desee sobrescribir el archivo con el archivo antiguo de la fuente.

Usar la opción rsync -u para hacer exactamente eso. (Es decir, no sobreescribir un archivo en el destino, si se modifica). En el siguiente ejemplo, el archivo llamado nombres base ya está modificado en el destino. Por lo tanto, no se sobrescribirán con rsync -u.

 

$ ls -l /root/temp/Basenames
total 39088
-rwxr-xr-x 1 root root        4096 Sep  2 11:35 Basenames

$ rsync -avzu Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/lib/rpm /root/temp
Password:
receiving file list ... done
rpm/

sent 122 bytes  received 505 bytes  114.00 bytes/sec
total size is 45305958  speedup is 72258.31

$ ls -lrt
total 39088
-rwxr-xr-x 1 root root        4096 Sep  2 11:35 Basenames

Ejemplo 8. Sólo sincronizar la estructura de árbol de directorios (no los archivos)

Usar rsync -d opción para sincronizar sólo árbol de directorios de la fuente al destino. El siguiente ejemplo, sincronizar solo árbol de directorios de forma recursiva, no los archivos en los directorios.

$ rsync -v -d Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/lib/ .
Password:
receiving file list ... done
logrotate.status
CAM/
YaST2/
acpi/

sent 240 bytes  received 1830 bytes  318.46 bytes/sec
total size is 956  speedup is 0.46


Ejemplo 9. Ver el progreso rsync durante la transferencia

Cuando se utiliza rsync para copias de seguridad, es posible que desee conocer el progreso de la copia de seguridad. es decir, la cantidad de archivos son copias, a qué velocidad se está copiando el archivo, etc

La opción de rsync -progress muestra el progreso detallado de la ejecución de rsync como se muestra a continuación.

$ rsync -avz --progress Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/lib/rpm/ /root/temp/
Password:
receiving file list ...
19 files to consider
./
Basenames
     5357568 100%   14.98MB/s    0:00:00 (xfer#1, to-check=17/19)
Conflictname
       12288 100%   35.09kB/s    0:00:00 (xfer#2, to-check=16/19)
.
.
.
sent 406 bytes  received 15810211 bytes  2108082.27 bytes/sec
total size is 45305958  speedup is 2.87



También puede utilizar la utilidad rsnapshot (que utiliza rsync) para realizar copias de seguridad del servidor local linux , o servidor de respaldo remoto linux . Ejemplo 10. Elimine los archivos creados en el Target

Si el archivo no está presente en la fuente, pero presente en el destino, es posible que desee eliminar el archivo en el objetivo durante rsync.

En ese caso, utilice la opción-delete, como se muestra a continuación. rsync -delete Borra los ficheros que no están presentes en el directorio de origen.

# Source and target are in sync. Now creating new file at the target.
$ > new-file.txt

$ rsync -avz --delete Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/lib/rpm/ .
Password:
receiving file list ... done
deleting new-file.txt
./

sent 26 bytes  received 390 bytes  48.94 bytes/sec
total size is 45305958  speedup is 108908.55


Target tiene el nuevo archivo denominado new-archivo.txt, cuando se sincronice con la fuente con la opción -delete, se elimine el archivo archivo.txt

Ejemplo 11. No Crear nuevo archivo en el destino

Si lo desea, puede actualizar (Sync) sólo los archivos existentes en el destino. En caso de que origen tenga archivos nuevos, que no estén en destino, evitará la creación de estos nuevos archivos en el blanco. Si desea usar esta característica, existe una opción con el comando rsync.

En primer lugar, añadir un nuevo archivo.txt en la fuente.

[/var/lib/rpm ]$ > new-file.txt

 

Despues, ejecute rsync de la siguiente manera:

 

$ rsync -avz --existing Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo..1.2:/var/lib/rpm/ .
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo..1.2's password:
receiving file list ... done
./

sent 26 bytes  received 419 bytes  46.84 bytes/sec
total size is 88551424  speedup is 198991.96

Si usted ve la salida anterior, no ha recibido el nuevo el archivo nuevo archivo.txt

Ejemplo 12. Ver los cambios entre origen y destino

Esta opción es útil para ver la diferencia de los archivos o directorios entre origen y destino.

En el origen:

$ ls -l /var/lib/rpm
-rw-r--r-- 1 root root  5357568 2010-06-24 08:57 Basenames
-rw-r--r-- 1 root root    12288 2008-05-28 22:03 Conflictname
-rw-r--r-- 1 root root  1179648 2010-06-24 08:57 Dirnames

En el destino:

$ ls -l /root/temp
-rw-r--r-- 1 root root    12288 May 28  2008 Conflictname
-rw-r--r-- 1 bin  bin   1179648 Jun 24 05:27 Dirnames
-rw-r--r-- 1 root root        0 Sep  3 06:39 Basenames


En el ejemplo anterior, entre el origen y el destino, hay dos diferencias. En primer lugar, el propietario y el grupo del archivo Dirname archivo son diferentes. También, el tamaño es diferente para el archivo Basenames

Ahora vamos a ver cómo rsync muestra esta diferencia. Opción -i muestra el elemento cambiado.

$ rsync -avzi Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/lib/rpm/ /root/temp/
Password:
receiving file list ... done
>f.st.... Basenames
.f....og. Dirnames

sent 48 bytes  received 2182544 bytes  291012.27 bytes/sec
total size is 45305958  speedup is 20.76


En la salida que muestra unos 9 las letras en la parte frontal del nombre del archivo o directorio que indica los cambios.

En nuestro ejemplo, las cartas delante de los nombres base (y Dirnames) dice lo siguiente:

  > Especifica que un archivo se transfiere al host local.
 f representa que es un archivo.
 s representa los cambios de tamaño están allí.
 t representa los cambios de fecha y hora están ahí.
o propietario cambiado
 g grupo cambiado.

. > specifies that a file is being transferred to the local host. f represents that it is a file. s represents size changes are there. t represents timestamp changes are there. o owner changed g group changed.


Ejemplo 13. Incluir y Excluir patrón durante la transferencia de archivos

rsync le permite dar el patrón que desee incluir y excluir archivos o directorios al hacer la sincronización.

$ rsync -avz --include 'P*' --exclude '*' Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/lib/rpm/ /root/temp/
Password:
receiving file list ... done
./
Packages
Providename
Provideversion
Pubkeys

sent 129 bytes  received 10286798 bytes  2285983.78 bytes/sec
total size is 32768000  speedup is 3.19


En el ejemplo anterior, se incluyen sólo los archivos o directorios que comienzan con 'P' (usando rsync Include) y excluye a todos los demás archivos. (Con exclusión rsync '*')

Ejemplo 14. No transferir archivos de gran tamaño

Se puede decir rsync no para transferir archivos que son mayores que un tamaño específico usando la opción rsync -max-size.

$ rsync -avz --max-size='100K' Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/lib/rpm/ /root/temp/
Password:
receiving file list ... done
./
Conflictname
Group
Installtid
Name
Sha1header
Sigmd5
Triggername

sent 252 bytes  received 123081 bytes  18974.31 bytes/sec
total size is 45305958  speedup is 367.35


max-size = 100K hace que rsync transfiera sólo los archivos que son menores  o igual a 100K. Puede indicar M para megabytes y G para gigabytes.

Ejemplo 15. Transfiera el archivo completo

Una de las característica principal de rsync es que sólo transfiere al bloque modificado para el destino, en lugar de enviar el archivo completo.

Si el ancho de banda no es un problema para ti (pero la CPU es), puede transferir todo el archivo, utilizando rsync opción -W. Esto acelerar el proceso de rsync, ya que no tiene que realizar la suma de control en la fuente y de destino.

#  rsync -avzW  Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/lib/rpm/ /root/temp
Password:
receiving file list ... done
./
Basenames
Conflictname
Dirnames
Filemd5s
Group
Installtid
Name

sent 406 bytes  received 15810211 bytes  2874657.64 bytes/sec
total size is 45305958  speedup is 2.87

Pin It

Comentarios  

# wilmer fernandez 04-12-2017 17:10
pero si quisiera que mi comando de copias no pidiera password como lo haría lo tengo asi
rsync -avz --no-whole-file --rsh='ssh -p22' --progress usuario@IP:/arc hivos /home/archivos

No estás registrado para postear comentarios