Cómo usar RSYNC con ejemplos

Cómo usar RSYNC con ejemplos
RSYNC es una herramienta popular para la sincronización de archivos, tanto a nivel local como de forma remota. A diferencia de otras herramientas de sincronización, RSYNC utiliza un algoritmo interesante que minimiza el consumo de ancho de banda. Simplemente mueve la parte de los archivos que han cambiado.

Es una utilidad poderosa que puede servir en muchas situaciones. En este artículo, mostraré cómo comenzar con RSYNC con una demostración. La manifestación se realizará en Ubuntu 18.04.

Rsync

RSYNC representa el término sincronización remota. A pesar del nombre, puede manejar la sincronización de archivos de forma remota y local. El término RSYNC también se usa para referirse al protocolo RSYNC que RSYNC usa para sincronizar. En este artículo, RSYNC siempre denotará la herramienta, no el protocolo.

Debido a su gran popularidad, RSYNC está disponible en casi todos los sistemas de Linux y Unix. Hay una buena posibilidad de que viene preinstalado. Si no, investigue un poco sobre cómo instalar RSYNC en su sistema.

Aquí hay una lista de características que ofrece RSYNC.

  • Copia del directorio
  • Configuración de copia de seguridad fácil
  • Puede trabajar a través de SSH
  • Puede ejecutarse como demonio/servidor
  • Retención del permiso del archivo

Uso de RSYNC

Antes de saltar a RSYNC, necesitamos algunos archivos ficticios para trabajar con. Creemos primero un directorio ficticio.

$ mkdir -v primario

Una vez creado, es hora de crear un puñado de archivos ficticios. Para crear un archivo, usaré el comando touch. Obtenga más información sobre el comando touch.

$ Touch Dummy 1 ... 20

Voila! Ahora estamos listos para usar RSYNC para realizar acciones usando estos archivos ficticios.

Estructura de comando RSYNC

RSYNC utiliza la siguiente estructura de comando.

$ rsync

Sincronizar directorios locales

Ahora, es hora de usar RSYNC para sincronizar archivos en múltiples destinos. En este ejemplo, sincronizaremos el contenido de Dir_Primary a Dir_target.

$ mkdir -v objetivo

Dígale a RSYNC que sincronice el contenido de ambos directorios.

$ rsync -v -r primario/ objetivo

Aquí, hemos usado dos argumentos diferentes.

-V: Le dice a RSYNC que se encuentre en modo textual
-riñonal: Recursivo, requerido para la sincronización del directorio.

En el siguiente ejemplo, usaremos una bandera diferente.

$ rsync -v -a primario/ objetivo

-a: Una bandera de combinación que significa "Archivo".

Usando este indicador, RSYNC sincronizará los contenidos de manera recursiva mientras preservará cualquier archivo simbólico, especial/de dispositivos, tiempos de modificación, permisos de archivos, grupo, propietario, etc. Se usa más comúnmente que la bandera "-r". Para el archivo, este es un método más recomendado.

¿Notaste que en todos los comandos que hemos ejecutado hasta ahora, en el caso de la fuente, siempre conservamos el "/" después del nombre del directorio?? Esto es para decirle a RSYNC que la fuente es todo el contenido del directorio de origen. Si no se usa el "/" al final del directorio de origen, RSYNC simplemente creará una copia del directorio de origen en lugar de su contenido.

Vamos a verlo con un ejemplo.

$ RSYNC -V -A objetivo principal

Verifique el resultado de la salida.

$ Target Target/

La mayoría de las veces, esto no es algo que necesitemos. Sin embargo, dependiendo de la situación, podría ser útil.

Prueba de RSYNC Run

Antes de ejecutar un comando RSYNC, siempre es importante verificar que el comando realizará la acción como se esperaba. Si desea probar la acción RSYNC para un determinado comando, use el indicador "-n" o "-secado".

$ rsync -avn primario/ objetivo
$ RSYNC -AVN objetivo primario

Aquí, la salida muestra lo que RSYNC realizaría si el comando se ejecutara realmente. Siempre que esté probando, no olvide usar la bandera "-V" para obtener una representación precisa de lo que está sucediendo.

Rsync sobre una conexión remota

Esta es otra característica interesante que RSYNC admite. Si su ubicación de copia de seguridad está en algún lugar remota, puede configurar fácilmente RSYNC para realizar una copia de seguridad en la ubicación remota a través de SSH. Sin embargo, ambas máquinas deben tener RSYNC instalado. Además, ambos sistemas también deben tener las teclas SSH establecidas.

Listo? Empecemos. Al principio, es el archivo que se sincroniza.

$ rsync -a @:<
Destino_dir>

Aquí, esta operación se llama un "empuje" porque empuja un directorio del sistema local a un sistema remoto. Lo contrario se conoce como "tirón".

$ rsync -a @:

RSYNC trata el primer argumento como la fuente, la segunda como destino.

Opciones útiles de RSYNC

RSYNC admite una tonelada de opciones. Todos ellos sirven a su propio propósito. Sin embargo, en su mayor parte, solo un puñado de ellos se usan la mayor parte del tiempo. En esta sección, echemos un vistazo a algunas opciones útiles de RSYNC.

La mayoría de las veces, los archivos están a punto de sincronizar. Usando la compresión, puede ahorrar tiempo y ancho de banda a costa de un poco de potencia de procesamiento adicional. RSYNC ofrece compresión por defecto. Para realizar una sincronización comprimida, use la bandera "-Z".

$ rsync -avz

Esta bandera interesante combina la función de la bandera "-progress" y "-Partial". El primero es mostrar una barra de progreso de la transferencia y la segunda es habilitar la reanudación de la transferencia interrumpida. Ambas características se combinan en la bandera "-P".

$ rsync -avzp

Ahora, veremos cómo RSYNC maneja la sincronización de archivos de manera inteligente. Ejecute el comando anterior nuevamente.

$ rsync -avzp

Aquí, RSYNC no volvió a cargar todos los archivos. En cambio, se saltó a los que no cambiaron en absoluto. En este ejemplo, omitió todos los archivos ya que todos están presentes en el directorio de destino.

¿Qué pasa si eliminó un archivo del directorio de origen?? Por defecto, RSYNC no eliminará nada del directorio de destino. Para forzar los archivos RSYNC Eliminar, use el indicador "-delete". Sin embargo, use la ejecución seca para probar si el comando funciona como desee.

$ rsync -avn --delete

De forma predeterminada, RSYNC sincronizará cada archivo/directorio de la fuente al directorio de destino. En ciertas situaciones, es posible que desee incluir/excluir ciertos archivos de la sincronización. RSYNC ofrece opciones útiles como "-exclude" e "-include" para excluir/incluir ciertos archivos. Pasar el patrón de archivo como el valor de estos argumentos.

$ rsync -avn --exclude = --incluir =

También puede definir el tamaño de archivo más grande que RSYNC debería sincronizar. Para hacer eso, use el indicador "-Max-Size" seguido del tamaño del archivo.

$ rsync -avn --max -size = '10k'

RSYNC tiene otra característica interesante en la manga. Ya no necesita el archivo fuente después de sincronizar? Rsync puede hacer eso, no hay problema. Sin embargo, asegúrese de que no esté ejecutando rsync con la bandera "-delete". De lo contrario, RSYNC eliminará los archivos sincronizados del destino!

$ RSYNC -AV--Remove-Source-Files

Pensamientos finales

Estos son solo un escenario común y simple de uso de RSYNC. Ofrece mucho más que eso. Es posible automatizar las operaciones de RSYNC utilizando RSYNC Daemon u otras secuencias de comandos. Con suerte, esta guía fue útil para comenzar con RSYNC.

Interesado en más rsync? Bueno, puede usar RSYNC como una copiadora de archivo. Es más eficiente e inteligente que CP. Las características y el uso más profundos se pueden encontrar en la página del hombre RSYNC.

$ man rsync

Disfrutar!