Cómo usar rsync con ejemplos

Rsync es una herramienta popular para sincronizar archivos, tanto local como remotamente. 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 poderosa utilidad que puede servir en muchas situaciones. En este artículo, mostraré cómo comenzar con rsync con una demostración. La demostración se realizará en Ubuntu 18.04.

Rsync

Rsync significa el término remoto de sincronización. 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 utiliza para sincronizar. En este artículo, rsync siempre indicará la herramienta, no el protocolo.

Debido a su gran popularidad, rsync está disponible en casi todos los sistemas Linux y UNIX. Es muy probable que venga 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 de directorios
  • Configuración de copia de seguridad fácil
  • Puede funcionar sobre SSH
  • Puede ejecutarse como demonio/servidor
  • Retención de permisos de archivo

Uso de Rsync

Antes de saltar a rsync, necesitamos algunos archivos ficticios para trabajar. Primero vamos a crear un directorio ficticio.

$ mkdir -v primaria

una Vez creado, es el momento para crear un puñado de archivos ficticios. Para crear un archivo, usaré el comando touch. Obtén más información sobre el comando táctil.

touch maniquí táctil{1..20}

¡Listo! Ahora estamos listos para usar rsync para realizar acciones utilizando estos archivos ficticios.

Estructura de comandos Rsync

Rsync utiliza la siguiente estructura de comandos.

$ rsync <opción><src><destino>

Sincronización de directorios locales

Ahora, es el momento de utilizar rsync para sincronizar archivos a través de múltiples destinos. En este ejemplo, sincronizaremos el contenido de dir_primary con dir_target.

$ mkdir -v destino

Dígale a rsync para sincronizar el contenido de los directorios.

$ rsync-v-r primary/ target

Aquí, hemos utilizado dos argumentos diferentes.

– v: Indica a rsync que se ejecute en modo detallado
-r: Recursivo, necesario para la sincronización de directorios.

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á el contenido de forma recursiva mientras conserva cualquier archivo simbólico, especial/de dispositivo, tiempos de modificación, permisos de archivo, grupo, propietario, etc. Se usa más comúnmente que la bandera «- r». Para archivar, este es un método más recomendado.

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

Echemos un vistazo con un ejemplo.

$ rsync -v -un objetivo principal

Comprobar el resultado de salida.

$ árbol de objetivo/

la Mayoría de las veces, esto no es algo que necesitamos. Sin embargo, dependiendo de la situación, puede ser útil.

Ejecución de prueba de Rsync

Antes de ejecutar un comando rsync, siempre es importante verificar que el comando realice la acción como se espera. Si desea probar la acción rsync para un comando determinado, use el indicador»- n «o»- dry-run».

$ rsync -avn primaria/ destino
$ rsync -avn objetivo principal

Aquí, el resultado muestra lo que rsync de realizar si el comando se ejecuta. Cuando estés haciendo pruebas, no olvides usar la bandera «- v » para obtener una representación precisa de lo que está sucediendo.

Rsync a través de una conexión remota

Esta es otra característica interesante que admite rsync. Si su ubicación de copia de seguridad se encuentra en un lugar remoto, puede configurar fácilmente rsync para realizar copias de seguridad en la ubicación remota a través de SSH. Sin embargo, ambas máquinas deben tener instalado rsync. Además, ambos sistemas también necesitan tener las teclas SSH configuradas.

Listo? Empecemos. Al principio, es la sincronización del archivo.

$ rsync -a <local_dir><nombre de usuario><remote_host><
destination_dir>

Aquí, esta operación se le llama «push», ya que empuja un directorio del sistema local a un sistema remoto. Lo contrario se conoce como»tirar».

$ rsync -a <nombre de usuario><remote_host><source_dir><local_dir>

Rsync trata el primer argumento como la fuente, el segundo como en el de destino.

Opciones útiles de rsync

Rsync admite un montón 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 que estás a punto de sincronizar no están comprimidos. Al usar la compresión, puede ahorrar tiempo y ancho de banda al costo de un poco de potencia de procesamiento adicional. Rsync ofrece compresión de forma predeterminada. Para realizar la sincronización comprimida, utilice el indicador «- z».

$ rsync -avz <fuente><destino>

Este interesante bandera combina la función de «progreso» y «parcial» de la bandera. La primera 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 <source><destination>

Now, let’s check out how rsync handles file syncing intelligently. Run the previous command again.

$ rsync -avzP <fuente><destino>

Aquí, rsync no re-subir todos los archivos. En cambio, se saltó aquellos que no cambiaron en absoluto. En este ejemplo, omitió todos los archivos, ya que todos ellos están presentes en el directorio de destino.

¿Qué pasa si elimina un archivo del directorio de origen? De forma predeterminada, rsync no eliminará nada del directorio de destino. Para forzar la eliminación de archivos rsync, utilice el indicador «- delete». Sin embargo, use el simulacro para probar si el comando funciona como desee.

$ rsync -avn-borrar <fuente><destino>

Por defecto, rsync sincronizará todos los archivos/directorios desde la fuente hasta el directorio de destino. En ciertas situaciones, es posible que desee incluir / excluir ciertos archivos de la sincronización. Rsync ofrece opciones prácticas como «–exclude» y «–include» para excluir/incluir ciertos archivos. Pase el patrón de archivo como valor de estos argumentos.

$ rsync -avn –exclude=<patrón de> –include=<patrón de>

También puede definir el tamaño de archivo más grande que rsync debería sincronizar. Para ello, utilice el indicador «- max-size » seguido del tamaño del archivo.

$ rsync -avn –max-size=’10k’ <fuente><destino>

Rsync tiene otra característica interesante en su manga. Ya No necesita el archivo de origen después de la sincronización? 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-fuente-de archivos <fuente><destino>

conclusión

Estos son sólo algunos puntos en común y simple escenario de uso de rsync. Ofrece mucho más que eso. Es posible automatizar las operaciones de rsync utilizando el demonio rsync u otros scripts. Con suerte, esta guía fue útil para comenzar con rsync.

¿Te interesa más rsync? Bueno, puedes usar rsync como copiadora de archivos. Es más eficiente e inteligente que cp. Se pueden encontrar funciones y usos más detallados en la página de manual de rsync.

$ man rsync

¡a Disfrutar!



Deja una respuesta

Tu dirección de correo electrónico no será publicada.