Paso 3: Rsync
rsync se utiliza para realizar la operación de copia de seguridad en UNIX / Linux.
se utiliza la utilidad rsync para sincronizar los archivos y directorios de un sitio a otro de una manera eficaz. Ubicación de copia de seguridad podría ser en servidor local o servidor remoto.
Características importantes de rsync
- Velocidad: primera vez, rsync Replica todo el contenido entre los directorios de origen y de destino. La próxima vez, rsync transfiere sólo los bloques modificados o bytes a la ubicación de destino, que hace la transferencia realmente rápida.
- Seguridad: rsync permite la encriptación de datos mediante ssh protocolo durante la transferencia.
- Menos ancho de banda: rsync utiliza compresión y descompresión de datos bloque por bloque en el envío y recepción final 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 privilegios especiales están obligados a instalar y ejecutar rsync
Sintaxis de
$ rsync opciones origen destino
Origen y destino pueden ser local o remota. En caso remoto, especifique el nombre de usuario, el 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 zvr - de rsync.
$ rsync - zvr/var/opt/instalación/inventario//root/temp construcción de lista de archivo... hacer sva.xml svB.xml. Enviado 26385 bytes recibidos 1098 bytes 54966,00 bytes/seg tamaño total es 44867 speedup es 1.63 $
En el ejemplo anterior de rsync:
- -z es para habilitar la compresión de
- -v verbose
- -r indica recursivo
Ahora vamos a ver la fecha y hora en uno de los archivos que se copió desde origen a destino. Como ven a continuación, rsync no 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 bin bin 949 18 de junio de 2009 /var/opt/installation/inventory/sva.xml - r--r--r--1 root bin 949 Sep 2 2009 /root/temp/sva.xml
Ejemplo 2. Conservar las marcas de tiempo durante la sincronización usando rsync - a
rsync opción - a indica el modo de archivo. -una opción hace lo siguiente,
- Modo recursivo
- Conserva los enlaces simbólicos
- Permisos cotos
- Conserva fecha y hora
- Conserva el propietario y grupo
Ahora, ejecutar el mismo comando que se proporciona en ejemplo 1 (pero con el rsync opción - a) tal como se muestra a continuación:
$ rsync - azv/var/opt/instalación/inventario/root/temp/edificio... lista de archivos hacer. / sva.xml svB.xml. Enviado 26499 bytes recibidos 1104 bytes 55206,00 bytes/seg tamaño total es 44867 speedup es 1.63 $
Como ven 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 bin raíz 949 18 de junio de 2009 /var/opt/installation/inventory/sva.xml - r--r--r--1 root bin 949 18 de junio de 2009 /root/temp/sva.xml
Ejemplo 3. Sincronizar un único fichero
Para copiar sólo un archivo, especifique el nombre del archivo al comando rsync, como se muestra a continuación.
$ rsync - v /var/lib/rpm/Pubkeys/root/temp/Pubkeys enviado 42 bytes recibidos 12380 bytes 3549,14 bytes/seg tamaño total es speedup 12288 0.99
Ejemplo 4. Sincronizar archivos de Local a remoto
rsync permite sincronizar los archivos/directorios entre el sistema local y remoto.
$ rsync - avz/root/temp/thegeekstuff contraseña: construcción de lista de archivo... hecho. / rpm / rpm/Basenames rpm/Conflictname enviado 15810261 bytes recibidos 412 bytes 2432411.23 bytes/seg tamaño total es speedup 45305958 2.87
Al hacer la sincronización con el servidor remoto, debe especificar el nombre de usuario y dirección ip del servidor remoto. También se debe especificar el directorio de destino en el servidor remoto. El formato es el nombre de usuario
Como ver arriba, pide contraseña al hacer rsync en servidor local a remoto.
A veces no quiere entrar la contraseña mientras copia de seguridad de archivos de local a servidor remoto. Por ejemplo, si tienes un backup script que copia los archivos de local a servidor remoto usando rsync, necesita la capacidad de rsync sin tener que introducir la contraseña.
Para ello, configurar ssh contraseña menos login como explicamos anteriormente.
Ejemplo 5. Sincronizar archivos de remoto a Local
Cuando quiera sincronizar archivos de remoto a local, especifique la ruta remota en fuente y ruta de acceso local en blanco como se muestra a continuación.
$ rsync - avz thegeekstuff /root/temp contraseña: recepción de lista de archivos... hecho rpm / rpm/Basenames. Enviado 406 bytes recibidos 15810230 bytes 2432405.54 bytes/seg tamaño total es speedup 45305958 2.87
Ejemplo 6. Shell remoto para la sincronización
rsync permite especificar el shell remoto que desea usar. Puede utilizar rsync ssh para permitir la conexión remota segura.
Utilizar rsync -e ssh para especificar que shell remoto a utilizar. En este caso, rsync utilizará ssh.
$ rsync - avz -e ssh thegeekstuff/root/temp contraseña: recepción de lista de archivos... hecho rpm / rpm/Basenames enviado 406 bytes recibidos 15810230 bytes 2432405.54 bytes/seg tamaño total es speedup 45305958 2.87
Ejemplo 7. No sobrescribir los archivos modificados en el destino
En una situación típica de sync, si se modifica un archivo en el destino, podríamos no queremos sobrescribir el archivo con el archivo antiguo de la fuente.
Usa rsync -u para hacer exactamente eso. (es decir no sobrescribir un archivo en el destino, si se modifica). En el ejemplo siguiente, el archivo llamado Basenames ya es modificado en el destino. Por lo tanto, no se sobrescribirá con rsync -u.
$ ls -l /root/temp/Basenames total 39088 - rwxr-xr-x 1 root root 4096 Sep 2 11:35 Basenames $ rsync - avzu thegeekstuff /root/temp contraseña: recibir archivo lista... hecho rpm / enviado 122 bytes recibido 505 bytes 114,00 bytes/seg tamaño total es speedup 45305958 72258.31 $ ls - lrt total 39088 - rwxr-xr-x 1 root root 4096 Sep 2 11:35 Basenames
Ejemplo 8. Sincronizar sólo la estructura del árbol de directorios (no los archivos)
Utilice opción -d rsync para sincronizar sólo árbol del directorio de origen al destino. El siguiente ejemplo, sincronizar sólo el árbol de directorios de manera recursiva, no los archivos en los directorios.
$ rsync - v -d thegeekstuff. Contraseña: recepción de lista de archivos... hecho CAM logrotate.status / YaST2 / acpi / enviado a 240 bytes recibidos 1830 bytes 318,46 bytes/seg tamaño total es 956 speedup es 0,46
Ejemplo 9. Ver el progreso durante la transferencia de rsync
Cuando utilizar rsync para backup, puede saber el progreso de la copia de seguridad. es decir cuántos archivos son copias, a qué velocidad es copiar el archivo, etc..
rsync-opción de progreso muestra el progreso detallado de ejecución de rsync como se muestra a continuación.
$ rsync - avz--progreso thegeekstuff/root/temp/contraseña: recepción de lista de archivos... 19 archivos de considerar. / Basenames 5357568 100% 14.98 MB/s 0:00:00 (xfer #1, para comprobar = 17/19) Conflictname 12288 35.09% 100 kB/s 0:00:00 (xfer #2, para comprobar = 16/19)... enviado 406 bytes recibidos total tamaño de 15810211 bytes 2108082.27 bytes/sec es speedup 45305958 2.87
También puede utilizar rsnapshot utilidad (que usa rsync) en linux local backup server, o servidor linux remoto backup.
Ejemplo 10. Eliminar los archivos creados en el destino
Si un archivo no está presente en el origen, pero presente en el destino, puede eliminar el archivo en el destino durante el rsync.
En ese caso, usa – borrar como se muestra a continuación. opción de borrado de rsync elimina archivos que no existen en el directorio de origen.
# Origen y destino están en sincronía. Ahora crear nuevo archivo en blanco. $ > nuevos archivo.txt $ rsync - avz - borrar thegeekstuff. Contraseña: recepción de lista de archivos... hecho eliminar nuevo file.txt. / enviado 26 bytes recibidos 390 bytes 48,94 bytes/seg tamaño total es speedup 45305958 es 108908.55
Objetivo tiene el nuevo archivo llamado nuevo archivo.txt, Cuándo sincronizar con la fuente de con-la opción de borrar, quitar el archivo nuevo-fichero.txt
Ejemplo 11. Archivo nuevo no cree en el destino
Si lo desea, puede actualizar archivos (sincronización) sólo existe en el destino. En caso de que la fuente tiene nuevos archivos, que no existe en el destino, puede evitar crear estos nuevos archivos en el destino. Si desea que esta característica, utilice – existentes la opción con el comando rsync.
En primer lugar, añadir un nuevo archivo archivo.txt en el origen.
[/ var/lib/rpm] $ > fichero.txt nuevo
A continuación, ejecute el rsync desde el objetivo.
$ rsync - avz--raíz existente. contraseña de root: recepción de lista de archivos... hecho. / enviado 26 bytes recibidos 419 bytes 46,84 bytes/seg tamaño total es speedup 88551424 es 198991.96
Si ves la salida anterior, no recibe el nuevo nuevo-archivo archivo.txt
Ejemplo 12. Ver los cambios entre fuente y destino
Esta opción es útil para ver la diferencia en los archivos o directorios de origen y de destino.
En la fuente:
$ ls -l /var/lib/rpm - rw-r--r--1 root root 5357568 2010-06-24 8: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 8:57 Dirnames
En el destino:
$ ls -l/raíz/temp - rw-r--r--1 root root 12288 28 de mayo de 2008 Conflictname - rw-r--r--1 bin bin 1179648 24 de Jun 5:27 Dirnames - rw-r--r--1 root root 0 Sep 3 6:39 Basenames
En el ejemplo anterior, entre el origen y destino, hay dos diferencias. En primer lugar, el propietario y grupo del archivo Dirname diferencia. A continuación, tamaño es diferente para el archivo Basenames.
Ahora vamos a ver cómo el rsync muestra esta diferencia. -i opción muestra los cambios de tema.
$ rsync - avzi thegeekstuff/root/temp/contraseña: recepción de lista de archivos... hecho > f.st... Basenames. f...og. Dirnames enviado 48 bytes recibidos 2182544 bytes 291012,27 bytes/seg tamaño total es 45305958 speedup 20.76
En la salida muestra algunas 9 letras delante el nombre de archivo o directorio que indica los cambios.
En nuestro ejemplo, las letras frente a la Basenames (y Dirnames) dice lo siguiente:
> especifica que se está transfiriendo un archivo para el host local. f representa que es un archivo. s representa tamaño cambios están ahí. t representa tiempo cambios existen. Oh dueño cambió g grupo cambiado.
Ejemplo 13. Incluir y excluir patrón durante la transferencia de archivos
rsync permite dar el diseño que desee incluir y excluir archivos o directorios al hacer la sincronización.
$ rsync - avz--incluyen excluir a 'P *'-' *' thegeekstuff/root/temp/contraseña: recibir archivo lista... hecho. paquetes Providename Provideversion Pubkeys enviadas 129 bytes recibidos 10286798 bytes 2285983.78 bytes/seg tamaño total es speedup 32768000 3.19
En el ejemplo anterior incluye sólo los archivos o directorios a partir de 'P' (usando rsync incluyen) y excluye todos los demás archivos. (usando rsync excluir ' *')
Ejemplo 14. No transferir archivos de grandes tamaño
Usted puede decirle a rsync no para transferir archivos que son mayores que un tamaño específico usando rsync – máximo-opción del tamaño.
$ rsync - avz - tamaño máximo = 100 K thegeekstuff/root/temp/contraseña: recepción de lista de archivos... hecho. / Conflictname grupo Installtid nombre Sha1header Sigmd5 Triggername enviado 252 bytes recibidos 123081 bytes 18974,31 bytes/seg tamaño total es 45305958 speedup 367.35
tamaño máximo = 100K hace rsync para transferir sólo los archivos que son inferior o igual a 100K. Puede indicar M para megabytes y G para gigabytes.
Ejemplo 15. Transferir todo el archivo
Una de las principales características de rsync es que transfiere solamente el bloque del cambio en el destino, en lugar de enviar todo el archivo.
Si el ancho de banda no es un problema para usted (aunque sea de la CPU), puede transferir todo el archivo, usando la opción -W de rsync. Esto va a acelerar el proceso rsync, ya que no tiene que realizar la suma de comprobación en el origen y el destino.
# rsync - avzW thegeekstuff /root/temp contraseña: recepción de lista de archivos... hecho. / Basenames Conflictname Dirnames Filemd5s grupo Installtid nombre enviado 406 bytes recibidos 15810211 bytes 2874657.64 bytes/seg tamaño total es speedup 45305958 2.87