LinuxParty
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
Comentarios
rsync -avz --no-whole-file --rsh='ssh -p22' --progress usuario@IP:/arc hivos /home/archivos